﻿// MT584




using Little.Soldier.SWIFT;
using Little.Soldier.SWIFT.Definition;
using System.Collections.Generic;
using System.ComponentModel;

namespace Little.Soldier.SWIFT.Messages.Category5
{
  public class MT584 : SwiftMessage
  {
    private static SwiftMessageDefinition MessageDefinition;
    private static SwiftTagSequenceDefinition U0002;
    private static SwiftTagDefinition U0003;
    private static SwiftTagSubItemDefinition U0004;
    private static SwiftTagDefinition U0005;
    private static SwiftTagSubItemDefinition U0006;
    private static SwiftTagSubItemDefinition U0007;
    private static SwiftTagChoiceDefinition U0008;
    private static SwiftTagDefinition U000E;
    private static SwiftTagSubItemDefinition U000F;
    private static SwiftTagSubItemDefinition U0010;
    private static SwiftTagDefinition U0011;
    private static SwiftTagSubItemDefinition U0012;
    private static SwiftTagSubItemDefinition U0013;
    private static SwiftTagDefinition U0014;
    private static SwiftTagSubItemDefinition U0015;
    private static SwiftTagSubItemDefinition U0016;
    private static SwiftTagDefinition U0017;
    private static SwiftTagSubItemDefinition U0018;
    private static SwiftTagSubItemDefinition U0019;
    private static SwiftTagSubItemDefinition U001A;
    private static SwiftTagChoiceDefinition U001B;
    private static SwiftTagDefinition U001C;
    private static SwiftTagSubItemDefinition U001D;
    private static SwiftTagSubItemDefinition U001E;
    private static SwiftTagDefinition U001F;
    private static SwiftTagSubItemDefinition U007F;
    private static SwiftTagSubItemDefinition U0080;
    private static SwiftTagSubItemDefinition U0081;
    private static SwiftTagSubItemDefinition U0082;
    private static SwiftTagDefinition U0083;
    private static SwiftTagSubItemDefinition U0084;
    private static SwiftTagSubItemDefinition U0086;
    private static SwiftTagSubItemDefinition U0087;
    private static SwiftTagSubItemDefinition U0088;
    private static SwiftTagSubItemDefinition U0089;
    private static SwiftTagSubItemDefinition U008A;
    private static SwiftTagSubItemDefinition U008B;
    private static SwiftTagSubItemDefinition U008C;
    private static SwiftTagSubItemDefinition U008D;
    private static SwiftTagSequenceDefinition U008E;
    private static SwiftTagDefinition U008F;
    private static SwiftTagSubItemDefinition U0090;
    private static SwiftTagChoiceDefinition U0091;
    private static SwiftTagDefinition U0092;
    private static SwiftTagSubItemDefinition U0093;
    private static SwiftTagSubItemDefinition U0094;
    private static SwiftTagDefinition U0095;
    private static SwiftTagSubItemDefinition U0096;
    private static SwiftTagSubItemDefinition U0097;
    private static SwiftTagSubItemDefinition U0098;
    private static SwiftTagDefinition U0099;
    private static SwiftTagSubItemDefinition U009A;
    private static SwiftTagSubItemDefinition U009B;
    private static SwiftTagDefinition U009C;
    private static SwiftTagSubItemDefinition U009D;
    private static SwiftTagChoiceDefinition U009E;
    private static SwiftTagDefinition U009F;
    private static SwiftTagSubItemDefinition U0001U0002;
    private static SwiftTagSubItemDefinition U0002U0002;
    private static SwiftTagDefinition U0003U0002;
    private static SwiftTagSubItemDefinition U0004U0002;
    private static SwiftTagSubItemDefinition U0005U0002;
    private static SwiftTagSubItemDefinition U0006U0002;
    private static SwiftTagChoiceDefinition U0007U0002;
    private static SwiftTagDefinition U0008U0002;
    private static SwiftTagSubItemDefinition U000EU0002;
    private static SwiftTagSubItemDefinition U000FU0002;
    private static SwiftTagDefinition U0010U0002;
    private static SwiftTagSubItemDefinition U0011U0002;
    private static SwiftTagSubItemDefinition U0012U0002;
    private static SwiftTagSubItemDefinition U0013U0002;
    private static SwiftTagSubItemDefinition U0014U0002;
    private static SwiftTagDefinition U0015U0002;
    private static SwiftTagSubItemDefinition U0016U0002;
    private static SwiftTagSubItemDefinition U0017U0002;
    private static SwiftTagDefinition U0018U0002;
    private static SwiftTagSubItemDefinition U0019U0002;
    private static SwiftTagSequenceDefinition U001AU0002;
    private static SwiftTagDefinition U001BU0002;
    private static SwiftTagSubItemDefinition U001CU0002;
    private static SwiftTagDefinition U001DU0002;
    private static SwiftTagSubItemDefinition U001EU0002;
    private static SwiftTagSubItemDefinition U001FU0002;
    private static SwiftTagSubItemDefinition U007FU0002;
    private static SwiftTagSequenceDefinition U0080U0002;
    private static SwiftTagDefinition U0081U0002;
    private static SwiftTagSubItemDefinition U0082U0002;
    private static SwiftTagDefinition U0083U0002;
    private static SwiftTagSubItemDefinition U0084U0002;
    private static SwiftTagSubItemDefinition U0086U0002;
    private static SwiftTagSubItemDefinition U0087U0002;
    private static SwiftTagSubItemDefinition U0088U0002;
    private static SwiftTagSubItemDefinition U0089U0002;
    private static SwiftTagDefinition U008AU0002;
    private static SwiftTagSubItemDefinition U008BU0002;
    private static SwiftTagSubItemDefinition U008CU0002;
    private static SwiftTagSubItemDefinition U008DU0002;
    private static SwiftTagChoiceDefinition U008EU0002;
    private static SwiftTagDefinition U008FU0002;
    private static SwiftTagSubItemDefinition U0090U0002;
    private static SwiftTagSubItemDefinition U0091U0002;
    private static SwiftTagSubItemDefinition U0092U0002;
    private static SwiftTagDefinition U0093U0002;
    private static SwiftTagSubItemDefinition U0094U0002;
    private static SwiftTagSubItemDefinition U0095U0002;
    private static SwiftTagSubItemDefinition U0096U0002;
    private static SwiftTagDefinition U0097U0002;
    private static SwiftTagSubItemDefinition U0098U0002;
    private static SwiftTagSubItemDefinition U0099U0002;
    private static SwiftTagDefinition U009AU0002;
    private static SwiftTagSubItemDefinition U009BU0002;
    private static SwiftTagSubItemDefinition U009CU0002;
    private static SwiftTagDefinition U009DU0002;
    private static SwiftTagSubItemDefinition U009EU0002;
    private static SwiftTagSubItemDefinition U009FU0002;
    private static SwiftTagDefinition U0001U0003;
    private static SwiftTagSubItemDefinition U0002U0003;
    private static SwiftTagSubItemDefinition U0003U0003;
    private static SwiftTagChoiceDefinition U0004U0003;
    private static SwiftTagDefinition U0005U0003;
    private static SwiftTagSubItemDefinition U0006U0003;
    private static SwiftTagSubItemDefinition U0007U0003;
    private static SwiftTagDefinition U0008U0003;
    private static SwiftTagSubItemDefinition U000EU0003;
    private static SwiftTagSubItemDefinition U000FU0003;
    private static SwiftTagSubItemDefinition U0010U0003;
    private static SwiftTagDefinition U0011U0003;
    private static SwiftTagSubItemDefinition U0012U0003;
    private static SwiftTagSubItemDefinition U0013U0003;
    private static SwiftTagChoiceDefinition U0014U0003;
    private static SwiftTagDefinition U0015U0003;
    private static SwiftTagSubItemDefinition U0016U0003;
    private static SwiftTagSubItemDefinition U0017U0003;
    private static SwiftTagSubItemDefinition U0018U0003;
    private static SwiftTagSubItemDefinition U0019U0003;
    private static SwiftTagDefinition U001AU0003;
    private static SwiftTagSubItemDefinition U001BU0003;
    private static SwiftTagSubItemDefinition U001CU0003;
    private static SwiftTagSubItemDefinition U001DU0003;
    private static SwiftTagSubItemDefinition U001EU0003;
    private static SwiftTagSubItemDefinition U001FU0003;
    private static SwiftTagSubItemDefinition U007FU0003;
    private static SwiftTagDefinition U0080U0003;
    private static SwiftTagSubItemDefinition U0081U0003;
    private static SwiftTagSubItemDefinition U0082U0003;
    private static SwiftTagSubItemDefinition U0083U0003;
    private static SwiftTagSubItemDefinition U0084U0003;
    private static SwiftTagDefinition U0086U0003;
    private static SwiftTagSubItemDefinition U0087U0003;
    private static SwiftTagSubItemDefinition U0088U0003;
    private static SwiftTagSubItemDefinition U0089U0003;
    private static SwiftTagDefinition U008AU0003;
    private static SwiftTagSubItemDefinition U008BU0003;
    private static SwiftTagSubItemDefinition U008CU0003;
    private static SwiftTagDefinition U008DU0003;
    private static SwiftTagSubItemDefinition U008EU0003;
    private static SwiftTagSequenceDefinition U008FU0003;
    private static SwiftTagDefinition U0090U0003;
    private static SwiftTagSubItemDefinition U0091U0003;
    private static SwiftTagDefinition U0092U0003;
    private static SwiftTagSubItemDefinition U0093U0003;
    private static SwiftTagSubItemDefinition U0094U0003;
    private static SwiftTagDefinition U0095U0003;
    private static SwiftTagSubItemDefinition U0096U0003;
    private static SwiftTagSubItemDefinition U0097U0003;
    private static SwiftTagSubItemDefinition U0098U0003;
    private static SwiftTagDefinition U0099U0003;
    private static SwiftTagSubItemDefinition U009AU0003;
    private static SwiftTagSubItemDefinition U009BU0003;
    private static SwiftTagSubItemDefinition U009CU0003;
    private static SwiftTagSequenceDefinition U009DU0003;
    private static SwiftTagDefinition U009EU0003;
    private static SwiftTagSubItemDefinition U009FU0003;
    private static SwiftTagChoiceDefinition U0001U0004;
    private static SwiftTagDefinition U0002U0004;
    private static SwiftTagSubItemDefinition U0003U0004;
    private static SwiftTagSubItemDefinition U0004U0004;
    private static SwiftTagDefinition U0005U0004;
    private static SwiftTagSubItemDefinition U0006U0004;
    private static SwiftTagSubItemDefinition U0007U0004;
    private static SwiftTagSubItemDefinition U0008U0004;
    private static SwiftTagDefinition U000EU0004;
    private static SwiftTagSubItemDefinition U000FU0004;
    private static SwiftTagSubItemDefinition U0010U0004;
    private static SwiftTagDefinition U0011U0004;
    private static SwiftTagSubItemDefinition U0012U0004;
    private static SwiftTagSequenceDefinition U0013U0004;
    private static SwiftTagDefinition U0014U0004;
    private static SwiftTagSubItemDefinition U0015U0004;
    private static SwiftTagChoiceDefinition U0016U0004;
    private static SwiftTagDefinition U0017U0004;
    private static SwiftTagSubItemDefinition U0018U0004;
    private static SwiftTagSubItemDefinition U0019U0004;
    private static SwiftTagDefinition U001AU0004;
    private static SwiftTagSubItemDefinition U001BU0004;
    private static SwiftTagSubItemDefinition U001CU0004;
    private static SwiftTagSubItemDefinition U001DU0004;
    private static SwiftTagDefinition U001EU0004;
    private static SwiftTagSubItemDefinition U001FU0004;
    private static SwiftTagSubItemDefinition U007FU0004;
    private static SwiftTagSubItemDefinition U0080U0004;
    private static SwiftTagSubItemDefinition U0081U0004;
    private static SwiftTagChoiceDefinition U0082U0004;
    private static SwiftTagDefinition U0083U0004;
    private static SwiftTagSubItemDefinition U0084U0004;
    private static SwiftTagSubItemDefinition U0086U0004;
    private static SwiftTagSubItemDefinition U0087U0004;
    private static SwiftTagDefinition U0088U0004;
    private static SwiftTagSubItemDefinition U0089U0004;
    private static SwiftTagSubItemDefinition U008AU0004;
    private static SwiftTagDefinition U008BU0004;
    private static SwiftTagSubItemDefinition U008CU0004;
    private static SwiftTagSubItemDefinition U008DU0004;
    private static SwiftTagSubItemDefinition U008EU0004;
    private static SwiftTagSubItemDefinition U008FU0004;
    private static SwiftTagDefinition U0090U0004;
    private static SwiftTagSubItemDefinition U0091U0004;
    private static SwiftTagSubItemDefinition U0092U0004;
    private static SwiftTagDefinition U0093U0004;
    private static SwiftTagSubItemDefinition U0094U0004;
    private static SwiftTagSubItemDefinition U0095U0004;
    private static SwiftTagSequenceDefinition U0096U0004;
    private static SwiftTagDefinition U0097U0004;
    private static SwiftTagSubItemDefinition U0098U0004;
    private static SwiftTagChoiceDefinition U0099U0004;
    private static SwiftTagDefinition U009AU0004;
    private static SwiftTagSubItemDefinition U009BU0004;
    private static SwiftTagSubItemDefinition U009CU0004;
    private static SwiftTagDefinition U009DU0004;
    private static SwiftTagSubItemDefinition U009EU0004;
    private static SwiftTagSubItemDefinition U009FU0004;
    private static SwiftTagDefinition U0001U0005;
    private static SwiftTagSubItemDefinition U0002U0005;
    private static SwiftTagSubItemDefinition U0003U0005;
    private static SwiftTagSubItemDefinition U0004U0005;
    private static SwiftTagDefinition U0005U0005;
    private static SwiftTagSubItemDefinition U0006U0005;
    private static SwiftTagSubItemDefinition U0007U0005;
    private static SwiftTagDefinition U0008U0005;
    private static SwiftTagSubItemDefinition U000EU0005;
    private static SwiftTagSubItemDefinition U000FU0005;
    private static SwiftTagSubItemDefinition U0010U0005;
    private static SwiftTagSubItemDefinition U0011U0005;
    private static SwiftTagSubItemDefinition U0012U0005;
    private static SwiftTagChoiceDefinition U0013U0005;
    private static SwiftTagDefinition U0014U0005;
    private static SwiftTagSubItemDefinition U0015U0005;
    private static SwiftTagSubItemDefinition U0016U0005;
    private static SwiftTagDefinition U0017U0005;
    private static SwiftTagSubItemDefinition U0018U0005;
    private static SwiftTagSubItemDefinition U0019U0005;
    private static SwiftTagSubItemDefinition U001AU0005;
    private static SwiftTagSubItemDefinition U001BU0005;
    private static SwiftTagChoiceDefinition U001CU0005;
    private static SwiftTagDefinition U001DU0005;
    private static SwiftTagSubItemDefinition U001EU0005;
    private static SwiftTagSubItemDefinition U001FU0005;
    private static SwiftTagDefinition U007FU0005;
    private static SwiftTagSubItemDefinition U0080U0005;
    private static SwiftTagSubItemDefinition U0081U0005;
    private static SwiftTagSubItemDefinition U0082U0005;
    private static SwiftTagSubItemDefinition U0083U0005;
    private static SwiftTagDefinition U0084U0005;
    private static SwiftTagSubItemDefinition U0086U0005;
    private static SwiftTagSubItemDefinition U0087U0005;
    private static SwiftTagChoiceDefinition U0088U0005;
    private static SwiftTagDefinition U0089U0005;
    private static SwiftTagSubItemDefinition U008AU0005;
    private static SwiftTagSubItemDefinition U008BU0005;
    private static SwiftTagDefinition U008CU0005;
    private static SwiftTagSubItemDefinition U008DU0005;
    private static SwiftTagSubItemDefinition U008EU0005;
    private static SwiftTagDefinition U008FU0005;
    private static SwiftTagSubItemDefinition U0090U0005;
    private static SwiftTagSubItemDefinition U0091U0005;
    private static SwiftTagSubItemDefinition U0092U0005;
    private static SwiftTagDefinition U0093U0005;
    private static SwiftTagSubItemDefinition U0094U0005;
    private static SwiftTagSequenceDefinition U0095U0005;
    private static SwiftTagDefinition U0096U0005;
    private static SwiftTagSubItemDefinition U0097U0005;
    private static SwiftTagDefinition U0098U0005;
    private static SwiftTagSubItemDefinition U0099U0005;
    private static SwiftTagSubItemDefinition U009AU0005;
    private static SwiftTagChoiceDefinition U009BU0005;
    private static SwiftTagDefinition U009CU0005;
    private static SwiftTagSubItemDefinition U009DU0005;
    private static SwiftTagSubItemDefinition U009EU0005;
    private static SwiftTagDefinition U009FU0005;
    private static SwiftTagSubItemDefinition U0001U0006;
    private static SwiftTagSubItemDefinition U0002U0006;
    private static SwiftTagSubItemDefinition U0003U0006;
    private static SwiftTagSubItemDefinition U0004U0006;
    private static SwiftTagDefinition U0005U0006;
    private static SwiftTagSubItemDefinition U0006U0006;
    private static SwiftTagSubItemDefinition U0007U0006;
    private static SwiftTagSubItemDefinition U0008U0006;
    private static SwiftTagSubItemDefinition U000EU0006;
    private static SwiftTagSubItemDefinition U000FU0006;
    private static SwiftTagDefinition U0010U0006;
    private static SwiftTagSubItemDefinition U0011U0006;
    private static SwiftTagDefinition U0012U0006;
    private static SwiftTagSubItemDefinition U0013U0006;
    private static SwiftTagDefinition U0014U0006;
    private static SwiftTagSubItemDefinition U0015U0006;
    private static SwiftTagDefinition U0016U0006;
    private static SwiftTagSubItemDefinition U0017U0006;
    private static SwiftTagSequenceDefinition U0018U0006;
    private static SwiftTagDefinition U0019U0006;
    private static SwiftTagSubItemDefinition U001AU0006;
    private static SwiftTagDefinition U001BU0006;
    private static SwiftTagSubItemDefinition U001CU0006;
    private static SwiftTagSubItemDefinition U001DU0006;
    private static SwiftTagDefinition U001EU0006;
    private static SwiftTagSubItemDefinition U001FU0006;
    private static SwiftTagSubItemDefinition U007FU0006;
    private static SwiftTagSubItemDefinition U0080U0006;
    private static SwiftTagDefinition U0081U0006;
    private static SwiftTagSubItemDefinition U0082U0006;
    private static SwiftTagSubItemDefinition U0083U0006;
    private static SwiftTagSubItemDefinition U0084U0006;
    private static SwiftTagSequenceDefinition U0086U0006;
    private static SwiftTagDefinition U0087U0006;
    private static SwiftTagSubItemDefinition U0088U0006;
    private static SwiftTagDefinition U0089U0006;
    private static SwiftTagSubItemDefinition U008AU0006;
    private static SwiftTagSubItemDefinition U008BU0006;
    private static SwiftTagSubItemDefinition U008CU0006;
    private static SwiftTagSequenceDefinition U008DU0006;
    private static SwiftTagDefinition U008EU0006;
    private static SwiftTagSubItemDefinition U008FU0006;
    private static SwiftTagDefinition U0090U0006;
    private static SwiftTagSubItemDefinition U0091U0006;
    private static SwiftTagSubItemDefinition U0092U0006;
    private static SwiftTagSubItemDefinition U0093U0006;
    private static SwiftTagSubItemDefinition U0094U0006;
    private static SwiftTagSubItemDefinition U0095U0006;
    private static SwiftTagDefinition U0096U0006;
    private static SwiftTagSubItemDefinition U0097U0006;
    private static SwiftTagSubItemDefinition U0098U0006;
    private static SwiftTagSubItemDefinition U0099U0006;
    private static SwiftTagChoiceDefinition U009AU0006;
    private static SwiftTagDefinition U009BU0006;
    private static SwiftTagSubItemDefinition U009CU0006;
    private static SwiftTagSubItemDefinition U009DU0006;
    private static SwiftTagSubItemDefinition U009EU0006;
    private static SwiftTagDefinition U009FU0006;
    private static SwiftTagSubItemDefinition U0001U0007;
    private static SwiftTagSubItemDefinition U0002U0007;
    private static SwiftTagSubItemDefinition U0003U0007;
    private static SwiftTagDefinition U0004U0007;
    private static SwiftTagSubItemDefinition U0005U0007;
    private static SwiftTagSubItemDefinition U0006U0007;
    private static SwiftTagDefinition U0007U0007;
    private static SwiftTagSubItemDefinition U0008U0007;
    private static SwiftTagSubItemDefinition U000EU0007;
    private static SwiftTagDefinition U000FU0007;
    private static SwiftTagSubItemDefinition U0010U0007;
    private static SwiftTagSubItemDefinition U0011U0007;
    private static SwiftTagDefinition U0012U0007;
    private static SwiftTagSubItemDefinition U0013U0007;
    private static SwiftTagSubItemDefinition U0014U0007;
    private static SwiftTagChoiceDefinition U0015U0007;
    private static SwiftTagDefinition U0016U0007;
    private static SwiftTagSubItemDefinition U0017U0007;
    private static SwiftTagSubItemDefinition U0018U0007;
    private static SwiftTagDefinition U0019U0007;
    private static SwiftTagSubItemDefinition U001AU0007;
    private static SwiftTagSubItemDefinition U001BU0007;
    private static SwiftTagSubItemDefinition U001CU0007;
    private static SwiftTagDefinition U001DU0007;
    private static SwiftTagSubItemDefinition U001EU0007;
    private static SwiftTagSubItemDefinition U001FU0007;
    private static SwiftTagChoiceDefinition U007FU0007;
    private static SwiftTagDefinition U0080U0007;
    private static SwiftTagSubItemDefinition U0081U0007;
    private static SwiftTagSubItemDefinition U0082U0007;
    private static SwiftTagSubItemDefinition U0083U0007;
    private static SwiftTagSubItemDefinition U0084U0007;
    private static SwiftTagDefinition U0086U0007;
    private static SwiftTagSubItemDefinition U0087U0007;
    private static SwiftTagSubItemDefinition U0088U0007;
    private static SwiftTagSubItemDefinition U0089U0007;
    private static SwiftTagSubItemDefinition U008AU0007;
    private static SwiftTagSubItemDefinition U008BU0007;
    private static SwiftTagSubItemDefinition U008CU0007;
    private static SwiftTagDefinition U008DU0007;
    private static SwiftTagSubItemDefinition U008EU0007;
    private static SwiftTagSubItemDefinition U008FU0007;
    private static SwiftTagSubItemDefinition U0090U0007;
    private static SwiftTagSubItemDefinition U0091U0007;
    private static SwiftTagDefinition U0092U0007;
    private static SwiftTagSubItemDefinition U0093U0007;
    private static SwiftTagSubItemDefinition U0094U0007;
    private static SwiftTagSubItemDefinition U0095U0007;
    private static SwiftTagDefinition U0096U0007;
    private static SwiftTagSubItemDefinition U0097U0007;
    private static SwiftTagSubItemDefinition U0098U0007;
    private static SwiftTagDefinition U0099U0007;
    private static SwiftTagSubItemDefinition U009AU0007;
    private static SwiftTagSequenceDefinition U009BU0007;
    private static SwiftTagDefinition U009CU0007;
    private static SwiftTagSubItemDefinition U009DU0007;
    private static SwiftTagChoiceDefinition U009EU0007;
    private static SwiftTagDefinition U009FU0007;
    private static SwiftTagSubItemDefinition U0001U0008;
    private static SwiftTagSubItemDefinition U0002U0008;
    private static SwiftTagDefinition U0003U0008;
    private static SwiftTagSubItemDefinition U0004U0008;
    private static SwiftTagSubItemDefinition U0005U0008;
    private static SwiftTagSubItemDefinition U0006U0008;
    private static SwiftTagDefinition U0007U0008;
    private static SwiftTagSubItemDefinition U0008U0008;
    private static SwiftTagSubItemDefinition U000EU0008;
    private static SwiftTagDefinition U000FU0008;
    private static SwiftTagSubItemDefinition U0010U0008;
    private static SwiftTagSequenceDefinition U0011U0008;
    private static SwiftTagDefinition U0012U0008;
    private static SwiftTagSubItemDefinition U0013U0008;
    private static SwiftTagChoiceDefinition U0014U0008;
    private static SwiftTagDefinition U0015U0008;
    private static SwiftTagSubItemDefinition U0016U0008;
    private static SwiftTagSubItemDefinition U0017U0008;
    private static SwiftTagDefinition U0018U0008;
    private static SwiftTagSubItemDefinition U0019U0008;
    private static SwiftTagSubItemDefinition U001AU0008;
    private static SwiftTagSubItemDefinition U001BU0008;
    private static SwiftTagDefinition U001CU0008;
    private static SwiftTagSubItemDefinition U001DU0008;
    private static SwiftTagSubItemDefinition U001EU0008;
    private static SwiftTagSubItemDefinition U001FU0008;
    private static SwiftTagSubItemDefinition U007FU0008;
    private static SwiftTagChoiceDefinition U0080U0008;
    private static SwiftTagDefinition U0081U0008;
    private static SwiftTagSubItemDefinition U0082U0008;
    private static SwiftTagSubItemDefinition U0083U0008;
    private static SwiftTagSubItemDefinition U0084U0008;
    private static SwiftTagDefinition U0086U0008;
    private static SwiftTagSubItemDefinition U0087U0008;
    private static SwiftTagSubItemDefinition U0088U0008;
    private static SwiftTagDefinition U0089U0008;
    private static SwiftTagSubItemDefinition U008AU0008;
    private static SwiftTagSubItemDefinition U008BU0008;
    private static SwiftTagSubItemDefinition U008CU0008;
    private static SwiftTagSubItemDefinition U008DU0008;
    private static SwiftTagDefinition U008EU0008;
    private static SwiftTagSubItemDefinition U008FU0008;
    private static SwiftTagSubItemDefinition U0090U0008;
    private static SwiftTagDefinition U0091U0008;
    private static SwiftTagSubItemDefinition U0092U0008;
    private static SwiftTagSubItemDefinition U0093U0008;
    private static SwiftTagSequenceDefinition U0094U0008;
    private static SwiftTagDefinition U0095U0008;
    private static SwiftTagSubItemDefinition U0096U0008;
    private static SwiftTagChoiceDefinition U0097U0008;
    private static SwiftTagDefinition U0098U0008;
    private static SwiftTagSubItemDefinition U0099U0008;
    private static SwiftTagSubItemDefinition U009AU0008;
    private static SwiftTagDefinition U009BU0008;
    private static SwiftTagSubItemDefinition U009CU0008;
    private static SwiftTagSubItemDefinition U009DU0008;
    private static SwiftTagDefinition U009EU0008;
    private static SwiftTagSubItemDefinition U009FU0008;
    private static SwiftTagSubItemDefinition U0001U000E;
    private static SwiftTagSubItemDefinition U0002U000E;
    private static SwiftTagDefinition U0003U000E;
    private static SwiftTagSubItemDefinition U0004U000E;
    private static SwiftTagSubItemDefinition U0005U000E;
    private static SwiftTagDefinition U0006U000E;
    private static SwiftTagSubItemDefinition U0007U000E;
    private static SwiftTagSubItemDefinition U0008U000E;
    private static SwiftTagSubItemDefinition U000EU000E;
    private static SwiftTagSubItemDefinition U000FU000E;
    private static SwiftTagSubItemDefinition U0010U000E;
    private static SwiftTagChoiceDefinition U0011U000E;
    private static SwiftTagDefinition U0012U000E;
    private static SwiftTagSubItemDefinition U0013U000E;
    private static SwiftTagSubItemDefinition U0014U000E;
    private static SwiftTagDefinition U0015U000E;
    private static SwiftTagSubItemDefinition U0016U000E;
    private static SwiftTagSubItemDefinition U0017U000E;
    private static SwiftTagSubItemDefinition U0018U000E;
    private static SwiftTagSubItemDefinition U0019U000E;
    private static SwiftTagChoiceDefinition U001AU000E;
    private static SwiftTagDefinition U001BU000E;
    private static SwiftTagSubItemDefinition U001CU000E;
    private static SwiftTagSubItemDefinition U001DU000E;
    private static SwiftTagDefinition U001EU000E;
    private static SwiftTagSubItemDefinition U001FU000E;
    private static SwiftTagSubItemDefinition U007FU000E;
    private static SwiftTagSubItemDefinition U0080U000E;
    private static SwiftTagSubItemDefinition U0081U000E;
    private static SwiftTagDefinition U0082U000E;
    private static SwiftTagSubItemDefinition U0083U000E;
    private static SwiftTagSubItemDefinition U0084U000E;
    private static SwiftTagChoiceDefinition U0086U000E;
    private static SwiftTagDefinition U0087U000E;
    private static SwiftTagSubItemDefinition U0088U000E;
    private static SwiftTagSubItemDefinition U0089U000E;
    private static SwiftTagDefinition U008AU000E;
    private static SwiftTagSubItemDefinition U008BU000E;
    private static SwiftTagSubItemDefinition U008CU000E;
    private static SwiftTagDefinition U008DU000E;
    private static SwiftTagSubItemDefinition U008EU000E;
    private static SwiftTagSubItemDefinition U008FU000E;
    private static SwiftTagSubItemDefinition U0090U000E;
    private static SwiftTagDefinition U0091U000E;
    private static SwiftTagSubItemDefinition U0092U000E;
    private static SwiftTagSequenceDefinition U0093U000E;
    private static SwiftTagDefinition U0094U000E;
    private static SwiftTagSubItemDefinition U0095U000E;
    private static SwiftTagDefinition U0096U000E;
    private static SwiftTagSubItemDefinition U0097U000E;
    private static SwiftTagSubItemDefinition U0098U000E;
    private static SwiftTagChoiceDefinition U0099U000E;
    private static SwiftTagDefinition U009AU000E;
    private static SwiftTagSubItemDefinition U009BU000E;
    private static SwiftTagSubItemDefinition U009CU000E;
    private static SwiftTagDefinition U009DU000E;
    private static SwiftTagSubItemDefinition U009EU000E;
    private static SwiftTagSubItemDefinition U009FU000E;
    private static SwiftTagSubItemDefinition U0001U000F;
    private static SwiftTagSubItemDefinition U0002U000F;
    private static SwiftTagDefinition U0003U000F;
    private static SwiftTagSubItemDefinition U0004U000F;
    private static SwiftTagSubItemDefinition U0005U000F;
    private static SwiftTagSubItemDefinition U0006U000F;
    private static SwiftTagSubItemDefinition U0007U000F;
    private static SwiftTagSubItemDefinition U0008U000F;
    private static SwiftTagDefinition U000EU000F;
    private static SwiftTagSubItemDefinition U000FU000F;
    private static SwiftTagDefinition U0010U000F;
    private static SwiftTagSubItemDefinition U0011U000F;
    private static SwiftTagDefinition U0012U000F;
    private static SwiftTagSubItemDefinition U0013U000F;
    private static SwiftTagDefinition U0014U000F;
    private static SwiftTagSubItemDefinition U0015U000F;
    private static SwiftTagSequenceDefinition U0016U000F;
    private static SwiftTagDefinition U0017U000F;
    private static SwiftTagSubItemDefinition U0018U000F;
    private static SwiftTagChoiceDefinition U0019U000F;
    private static SwiftTagDefinition U001AU000F;
    private static SwiftTagSubItemDefinition U001BU000F;
    private static SwiftTagSubItemDefinition U001CU000F;
    private static SwiftTagDefinition U001DU000F;
    private static SwiftTagSubItemDefinition U001EU000F;
    private static SwiftTagSubItemDefinition U001FU000F;
    private static SwiftTagSubItemDefinition U007FU000F;
    private static SwiftTagDefinition U0080U000F;
    private static SwiftTagSubItemDefinition U0081U000F;
    private static SwiftTagSubItemDefinition U0082U000F;
    private static SwiftTagDefinition U0083U000F;
    private static SwiftTagSubItemDefinition U0084U000F;

    [Description("General Information")]
    public MT584.SequenceAClass SequenceA
    {
      get
      {
        return new MT584.SequenceAClass((SwiftElement) this, 0, false);
      }
    }

    [Description("Financial Instrument")]
    public MT584.SequenceBClass[] SequenceB
    {
      get
      {
        int index = -1;
        List<MT584.SequenceBClass> list = new List<MT584.SequenceBClass>();
        int count;
        do
        {
          ++index;
          MT584.SequenceBClass sequenceBclass = new MT584.SequenceBClass((SwiftElement) this, index, false);
          count = this.ListTags((SwiftElement) sequenceBclass).Count;
          if (count > 0)
            list.Add(sequenceBclass);
        }
        while (count > 0);
        return list.ToArray();
      }
    }

    [Description("Status")]
    public MT584.SequenceCClass[] SequenceC
    {
      get
      {
        int index = -1;
        List<MT584.SequenceCClass> list = new List<MT584.SequenceCClass>();
        int count;
        do
        {
          ++index;
          MT584.SequenceCClass sequenceCclass = new MT584.SequenceCClass((SwiftElement) this, index, false);
          count = this.ListTags((SwiftElement) sequenceCclass).Count;
          if (count > 0)
            list.Add(sequenceCclass);
        }
        while (count > 0);
        return list.ToArray();
      }
    }

    [Description("Additional Information")]
    public MT584.SequenceDClass SequenceD
    {
      get
      {
        MT584.SequenceDClass sequenceDclass = new MT584.SequenceDClass((SwiftElement) this, 0, false);
        if (this.ListTags((SwiftElement) sequenceDclass).Count > 0)
          return sequenceDclass;
        else
          return (MT584.SequenceDClass) null;
      }
    }

    public MT584()
      : base(true)
    {
    }

    public MT584(SwiftMessage message)
      : base(message)
    {
    }

    public MT584.SequenceBClass AddSequenceB()
    {
      return new MT584.SequenceBClass((SwiftElement) this, this.SequenceB.Length, true);
    }

    public void RemoveSequenceB(MT584.SequenceBClass sequence)
    {
      foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
        this.RemoveTag(tag);
    }

    public MT584.SequenceCClass AddSequenceC()
    {
      return new MT584.SequenceCClass((SwiftElement) this, this.SequenceC.Length, true);
    }

    public void RemoveSequenceC(MT584.SequenceCClass sequence)
    {
      foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
        this.RemoveTag(tag);
    }

    public MT584.SequenceDClass AddSequenceD()
    {
      return this.SequenceD ?? new MT584.SequenceDClass((SwiftElement) this, 0, true);
    }

    public void RemoveSequenceD(MT584.SequenceDClass sequence)
    {
      foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
        this.RemoveTag(tag);
    }

    internal override SwiftMessageDefinition MsgDefinition()
    {
      return MT584.MessageDefinition;
    }

    protected override void InitSwiftMessageDefinition()
    {
      MT584.MessageDefinition = new SwiftMessageDefinition("MT584", "Statement of ETC Pending Trades");
      MT584.U0002 = new SwiftTagSequenceDefinition("SequenceA", "General Information");
      MT584.U0003 = new SwiftTagDefinition("StartOfBlock_A_16R", "Start Of Block");
      MT584.U0003.TagName = ":16R:GENL";
      MT584.U0004 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT584.U0004.Mandatory = false;
      MT584.U0003.Elements.Add((SwiftDefinitionElement) MT584.U0004);
      MT584.U0002.Elements.Add((SwiftDefinitionElement) MT584.U0003);
      MT584.U0005 = new SwiftTagDefinition("PageNumberContinuationIndicator_A_28E", "Page Number/Continuation Indicator");
      MT584.U0005.TagName = ":28E:";
      MT584.U0006 = new SwiftTagSubItemDefinition("PageNumber", "Page Number");
      MT584.U0005.Elements.Add((SwiftDefinitionElement) MT584.U0006);
      MT584.U0007 = new SwiftTagSubItemDefinition("ContinuationIndicator", "Continuation Indicator");
      MT584.U0005.Elements.Add((SwiftDefinitionElement) MT584.U0007);
      MT584.U0002.Elements.Add((SwiftDefinitionElement) MT584.U0005);
      MT584.U0008 = new SwiftTagChoiceDefinition("Choice", "");
      MT584.U0008.Mandatory = false;
      MT584.U0008.Multiple = true;
      MT584.U000E = new SwiftTagDefinition("NumberIdentification_A_13A", "Statement Number");
      MT584.U000E.TagName = ":13A::";
      MT584.U000F = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U000E.Elements.Add((SwiftDefinitionElement) MT584.U000F);
      MT584.U0010 = new SwiftTagSubItemDefinition("NumberId", "Number Id");
      MT584.U000E.Elements.Add((SwiftDefinitionElement) MT584.U0010);
      MT584.U0008.Elements.Add((SwiftDefinitionElement) MT584.U000E);
      MT584.U0011 = new SwiftTagDefinition("NumberIdentification_A_13J", "Statement Number");
      MT584.U0011.TagName = ":13J::";
      MT584.U0012 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0011.Elements.Add((SwiftDefinitionElement) MT584.U0012);
      MT584.U0013 = new SwiftTagSubItemDefinition("ExtendedNumberId", "Extended Number Id");
      MT584.U0011.Elements.Add((SwiftDefinitionElement) MT584.U0013);
      MT584.U0008.Elements.Add((SwiftDefinitionElement) MT584.U0011);
      MT584.U0002.Elements.Add((SwiftDefinitionElement) MT584.U0008);
      MT584.U0014 = new SwiftTagDefinition("Reference_A_20C", "Sender's Reference");
      MT584.U0014.TagName = ":20C::";
      MT584.U0015 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0014.Elements.Add((SwiftDefinitionElement) MT584.U0015);
      MT584.U0016 = new SwiftTagSubItemDefinition("Reference", "Reference");
      MT584.U0014.Elements.Add((SwiftDefinitionElement) MT584.U0016);
      MT584.U0002.Elements.Add((SwiftDefinitionElement) MT584.U0014);
      MT584.U0017 = new SwiftTagDefinition("FunctionOfTheMessage_A_23G", "Function of the Message");
      MT584.U0017.TagName = ":23G:";
      MT584.U0018 = new SwiftTagSubItemDefinition("Function", "Function");
      MT584.U0017.Elements.Add((SwiftDefinitionElement) MT584.U0018);
      MT584.U0019 = new SwiftTagSubItemDefinition("Subfunction", "Sub Function");
      MT584.U0019.Mandatory = false;
      MT584.U001A = new SwiftTagSubItemDefinition("SubFunction", "SubFunction");
      MT584.U0019.Elements.Add((SwiftDefinitionElement) MT584.U001A);
      MT584.U0017.Elements.Add((SwiftDefinitionElement) MT584.U0019);
      MT584.U0002.Elements.Add((SwiftDefinitionElement) MT584.U0017);
      MT584.U001B = new SwiftTagChoiceDefinition("Choice", "");
      MT584.U001B.Multiple = true;
      MT584.U001C = new SwiftTagDefinition("Date_A_98A", "Date/Time");
      MT584.U001C.TagName = ":98A::";
      MT584.U001C.Multiple = true;
      MT584.U001D = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U001C.Elements.Add((SwiftDefinitionElement) MT584.U001D);
      MT584.U001E = new SwiftTagSubItemDefinition("Date", "Date");
      MT584.U001C.Elements.Add((SwiftDefinitionElement) MT584.U001E);
      MT584.U001B.Elements.Add((SwiftDefinitionElement) MT584.U001C);
      MT584.U001F = new SwiftTagDefinition("DateTime_A_98C", "Date/Time");
      MT584.U001F.TagName = ":98C::";
      MT584.U001F.Multiple = true;
      MT584.U007F = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U001F.Elements.Add((SwiftDefinitionElement) MT584.U007F);
      MT584.U0080 = new SwiftTagSubItemDefinition("DateTime", "Date/Time");
      MT584.U0081 = new SwiftTagSubItemDefinition("Date", "Date");
      MT584.U0080.Elements.Add((SwiftDefinitionElement) MT584.U0081);
      MT584.U0082 = new SwiftTagSubItemDefinition("Time", "Time");
      MT584.U0080.Elements.Add((SwiftDefinitionElement) MT584.U0082);
      MT584.U001F.Elements.Add((SwiftDefinitionElement) MT584.U0080);
      MT584.U001B.Elements.Add((SwiftDefinitionElement) MT584.U001F);
      MT584.U0083 = new SwiftTagDefinition("DateTime_A_98E", "Trade Date/Time");
      MT584.U0083.TagName = ":98E::";
      MT584.U0083.Multiple = true;
      MT584.U0084 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0083.Elements.Add((SwiftDefinitionElement) MT584.U0084);
      MT584.U0086 = new SwiftTagSubItemDefinition("DateTimeDecimalsAndUTCIndicator", "Trade Date/Time");
      MT584.U0087 = new SwiftTagSubItemDefinition("DateTimeDecimals", "Trade Date/Time");
      MT584.U0088 = new SwiftTagSubItemDefinition("DateTime", "Date\\Time");
      MT584.U0089 = new SwiftTagSubItemDefinition("Date", "Date");
      MT584.U0088.Elements.Add((SwiftDefinitionElement) MT584.U0089);
      MT584.U008A = new SwiftTagSubItemDefinition("Time", "Time");
      MT584.U0088.Elements.Add((SwiftDefinitionElement) MT584.U008A);
      MT584.U0087.Elements.Add((SwiftDefinitionElement) MT584.U0088);
      MT584.U008B = new SwiftTagSubItemDefinition("Decimals", "Time");
      MT584.U008B.Mandatory = false;
      MT584.U0087.Elements.Add((SwiftDefinitionElement) MT584.U008B);
      MT584.U0086.Elements.Add((SwiftDefinitionElement) MT584.U0087);
      MT584.U008C = new SwiftTagSubItemDefinition("UTCIndicatorRecord", "Date\\Time");
      MT584.U008C.Mandatory = false;
      MT584.U008D = new SwiftTagSubItemDefinition("UTCIndicator", "Indicator");
      MT584.U008C.Elements.Add((SwiftDefinitionElement) MT584.U008D);
      MT584.U0086.Elements.Add((SwiftDefinitionElement) MT584.U008C);
      MT584.U0083.Elements.Add((SwiftDefinitionElement) MT584.U0086);
      MT584.U001B.Elements.Add((SwiftDefinitionElement) MT584.U0083);
      MT584.U0002.Elements.Add((SwiftDefinitionElement) MT584.U001B);
      MT584.U008E = new SwiftTagSequenceDefinition("SequenceA1", "Linkages");
      MT584.U008E.Mandatory = false;
      MT584.U008E.Multiple = true;
      MT584.U008F = new SwiftTagDefinition("StartOfBlock_A1_16R", "Start Of Block");
      MT584.U008F.TagName = ":16R:LINK";
      MT584.U0090 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT584.U0090.Mandatory = false;
      MT584.U008F.Elements.Add((SwiftDefinitionElement) MT584.U0090);
      MT584.U008E.Elements.Add((SwiftDefinitionElement) MT584.U008F);
      MT584.U0091 = new SwiftTagChoiceDefinition("Choice", "");
      MT584.U0091.Mandatory = false;
      MT584.U0091.Multiple = true;
      MT584.U0092 = new SwiftTagDefinition("NumberIdentification_A1_13A", "Linked Message");
      MT584.U0092.TagName = ":13A::";
      MT584.U0093 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0092.Elements.Add((SwiftDefinitionElement) MT584.U0093);
      MT584.U0094 = new SwiftTagSubItemDefinition("NumberId", "Number Id");
      MT584.U0092.Elements.Add((SwiftDefinitionElement) MT584.U0094);
      MT584.U0091.Elements.Add((SwiftDefinitionElement) MT584.U0092);
      MT584.U0095 = new SwiftTagDefinition("NumberIdentification_A1_13B", "Linked Message");
      MT584.U0095.TagName = ":13B::";
      MT584.U0096 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0095.Elements.Add((SwiftDefinitionElement) MT584.U0096);
      MT584.U0097 = new SwiftTagSubItemDefinition("DataSource", "Data Source Scheme");
      MT584.U0095.Elements.Add((SwiftDefinitionElement) MT584.U0097);
      MT584.U0098 = new SwiftTagSubItemDefinition("Number_13B", "Number");
      MT584.U0095.Elements.Add((SwiftDefinitionElement) MT584.U0098);
      MT584.U0091.Elements.Add((SwiftDefinitionElement) MT584.U0095);
      MT584.U008E.Elements.Add((SwiftDefinitionElement) MT584.U0091);
      MT584.U0099 = new SwiftTagDefinition("Reference_A1_20C", "Reference");
      MT584.U0099.TagName = ":20C::";
      MT584.U009A = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0099.Elements.Add((SwiftDefinitionElement) MT584.U009A);
      MT584.U009B = new SwiftTagSubItemDefinition("Reference", "Reference");
      MT584.U0099.Elements.Add((SwiftDefinitionElement) MT584.U009B);
      MT584.U008E.Elements.Add((SwiftDefinitionElement) MT584.U0099);
      MT584.U009C = new SwiftTagDefinition("EndOfBlock_A1_16S", "End Of Block");
      MT584.U009C.TagName = ":16S:LINK";
      MT584.U009D = new SwiftTagSubItemDefinition("EndOfBlock", "End of Block");
      MT584.U009D.Mandatory = false;
      MT584.U009C.Elements.Add((SwiftDefinitionElement) MT584.U009D);
      MT584.U008E.Elements.Add((SwiftDefinitionElement) MT584.U009C);
      MT584.U0002.Elements.Add((SwiftDefinitionElement) MT584.U008E);
      MT584.U009E = new SwiftTagChoiceDefinition("Choice", "");
      MT584.U009E.Mandatory = false;
      MT584.U009E.Multiple = true;
      MT584.U009F = new SwiftTagDefinition("Party_A_95P", "Account Owner");
      MT584.U009F.TagName = ":95P::";
      MT584.U0001U0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U009F.Elements.Add((SwiftDefinitionElement) MT584.U0001U0002);
      MT584.U0002U0002 = new SwiftTagSubItemDefinition("BankIdentifier", "Bank Identifier Code");
      MT584.U009F.Elements.Add((SwiftDefinitionElement) MT584.U0002U0002);
      MT584.U009E.Elements.Add((SwiftDefinitionElement) MT584.U009F);
      MT584.U0003U0002 = new SwiftTagDefinition("Party_A_95R", "Account Owner");
      MT584.U0003U0002.TagName = ":95R::";
      MT584.U0004U0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0003U0002.Elements.Add((SwiftDefinitionElement) MT584.U0004U0002);
      MT584.U0005U0002 = new SwiftTagSubItemDefinition("DataSourceSchemeType", "Data Source Scheme with a maximum of 8 characters");
      MT584.U0003U0002.Elements.Add((SwiftDefinitionElement) MT584.U0005U0002);
      MT584.U0006U0002 = new SwiftTagSubItemDefinition("ProprietaryCodeType", "Proprietary Code Type");
      MT584.U0003U0002.Elements.Add((SwiftDefinitionElement) MT584.U0006U0002);
      MT584.U009E.Elements.Add((SwiftDefinitionElement) MT584.U0003U0002);
      MT584.U0002.Elements.Add((SwiftDefinitionElement) MT584.U009E);
      MT584.U0007U0002 = new SwiftTagChoiceDefinition("Choice", "");
      MT584.U0007U0002.Mandatory = false;
      MT584.U0007U0002.Multiple = true;
      MT584.U0008U0002 = new SwiftTagDefinition("Account_A_97A", "Safekeeping Account");
      MT584.U0008U0002.TagName = ":97A::";
      MT584.U000EU0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0008U0002.Elements.Add((SwiftDefinitionElement) MT584.U000EU0002);
      MT584.U000FU0002 = new SwiftTagSubItemDefinition("AccountNumber", "Account Number");
      MT584.U0008U0002.Elements.Add((SwiftDefinitionElement) MT584.U000FU0002);
      MT584.U0007U0002.Elements.Add((SwiftDefinitionElement) MT584.U0008U0002);
      MT584.U0010U0002 = new SwiftTagDefinition("Account_A_97B", "Safekeeping Account");
      MT584.U0010U0002.TagName = ":97B::";
      MT584.U0011U0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0010U0002.Elements.Add((SwiftDefinitionElement) MT584.U0011U0002);
      MT584.U0012U0002 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT584.U0010U0002.Elements.Add((SwiftDefinitionElement) MT584.U0012U0002);
      MT584.U0013U0002 = new SwiftTagSubItemDefinition("AccountTypeCode", "Account Type Code");
      MT584.U0010U0002.Elements.Add((SwiftDefinitionElement) MT584.U0013U0002);
      MT584.U0014U0002 = new SwiftTagSubItemDefinition("AccountNumber", "Account Number");
      MT584.U0010U0002.Elements.Add((SwiftDefinitionElement) MT584.U0014U0002);
      MT584.U0007U0002.Elements.Add((SwiftDefinitionElement) MT584.U0010U0002);
      MT584.U0002.Elements.Add((SwiftDefinitionElement) MT584.U0007U0002);
      MT584.U0015U0002 = new SwiftTagDefinition("Flag_A_17B", "Activity Flag");
      MT584.U0015U0002.TagName = ":17B::";
      MT584.U0016U0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0015U0002.Elements.Add((SwiftDefinitionElement) MT584.U0016U0002);
      MT584.U0017U0002 = new SwiftTagSubItemDefinition("Flag", "Flag");
      MT584.U0015U0002.Elements.Add((SwiftDefinitionElement) MT584.U0017U0002);
      MT584.U0002.Elements.Add((SwiftDefinitionElement) MT584.U0015U0002);
      MT584.U0018U0002 = new SwiftTagDefinition("EndOfBlock_A_16S", "End Of Block");
      MT584.U0018U0002.TagName = ":16S:GENL";
      MT584.U0019U0002 = new SwiftTagSubItemDefinition("EndOfBlock", "End of Block");
      MT584.U0019U0002.Mandatory = false;
      MT584.U0018U0002.Elements.Add((SwiftDefinitionElement) MT584.U0019U0002);
      MT584.U0002.Elements.Add((SwiftDefinitionElement) MT584.U0018U0002);
      MT584.MessageDefinition.Elements.Add((SwiftDefinitionElement) MT584.U0002);
      MT584.U001AU0002 = new SwiftTagSequenceDefinition("SequenceB", "Financial Instrument");
      MT584.U001AU0002.Mandatory = false;
      MT584.U001AU0002.Multiple = true;
      MT584.U001BU0002 = new SwiftTagDefinition("StartOfBlock_B_16R", "Start Of Block");
      MT584.U001BU0002.TagName = ":16R:FIN";
      MT584.U001CU0002 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT584.U001CU0002.Mandatory = false;
      MT584.U001BU0002.Elements.Add((SwiftDefinitionElement) MT584.U001CU0002);
      MT584.U001AU0002.Elements.Add((SwiftDefinitionElement) MT584.U001BU0002);
      MT584.U001DU0002 = new SwiftTagDefinition("IdentificationOfFinancialInstrument_B_35B", "Identification of the Financial Instrument");
      MT584.U001DU0002.TagName = ":35B:";
      MT584.U001EU0002 = new SwiftTagSubItemDefinition("IdentificationOfSecurity", "Identification of Security");
      MT584.U001EU0002.Mandatory = false;
      MT584.U001FU0002 = new SwiftTagSubItemDefinition("IdentificationOfSecurity_1", "Identification of Security");
      MT584.U001EU0002.Elements.Add((SwiftDefinitionElement) MT584.U001FU0002);
      MT584.U001DU0002.Elements.Add((SwiftDefinitionElement) MT584.U001EU0002);
      MT584.U007FU0002 = new SwiftTagSubItemDefinition("DescriptionOfSecurity", "Description Of Security");
      MT584.U007FU0002.Mandatory = false;
      MT584.U001DU0002.Elements.Add((SwiftDefinitionElement) MT584.U007FU0002);
      MT584.U001AU0002.Elements.Add((SwiftDefinitionElement) MT584.U001DU0002);
      MT584.U0080U0002 = new SwiftTagSequenceDefinition("SequenceB1", "Financial Instrument Attributes");
      MT584.U0080U0002.Mandatory = false;
      MT584.U0081U0002 = new SwiftTagDefinition("StartOfBlock_B1_16R", "Start Of Block");
      MT584.U0081U0002.TagName = ":16R:FIA";
      MT584.U0082U0002 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT584.U0082U0002.Mandatory = false;
      MT584.U0081U0002.Elements.Add((SwiftDefinitionElement) MT584.U0082U0002);
      MT584.U0080U0002.Elements.Add((SwiftDefinitionElement) MT584.U0081U0002);
      MT584.U0083U0002 = new SwiftTagDefinition("Place_B1_94B", "Place of Trade");
      MT584.U0083U0002.TagName = ":94B::";
      MT584.U0083U0002.Mandatory = false;
      MT584.U0084U0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0083U0002.Elements.Add((SwiftDefinitionElement) MT584.U0084U0002);
      MT584.U0086U0002 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT584.U0083U0002.Elements.Add((SwiftDefinitionElement) MT584.U0086U0002);
      MT584.U0087U0002 = new SwiftTagSubItemDefinition("PlaceCode", "Place Code");
      MT584.U0083U0002.Elements.Add((SwiftDefinitionElement) MT584.U0087U0002);
      MT584.U0088U0002 = new SwiftTagSubItemDefinition("Narrative", "Narrative");
      MT584.U0088U0002.Mandatory = false;
      MT584.U0089U0002 = new SwiftTagSubItemDefinition("Narrative_94B", "Narrative");
      MT584.U0088U0002.Elements.Add((SwiftDefinitionElement) MT584.U0089U0002);
      MT584.U0083U0002.Elements.Add((SwiftDefinitionElement) MT584.U0088U0002);
      MT584.U0080U0002.Elements.Add((SwiftDefinitionElement) MT584.U0083U0002);
      MT584.U008AU0002 = new SwiftTagDefinition("Indicator_B1_22F", "Indicator");
      MT584.U008AU0002.TagName = ":22F::";
      MT584.U008AU0002.Mandatory = false;
      MT584.U008AU0002.Multiple = true;
      MT584.U008BU0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U008AU0002.Elements.Add((SwiftDefinitionElement) MT584.U008BU0002);
      MT584.U008CU0002 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT584.U008AU0002.Elements.Add((SwiftDefinitionElement) MT584.U008CU0002);
      MT584.U008DU0002 = new SwiftTagSubItemDefinition("Indicator", "Indicator");
      MT584.U008AU0002.Elements.Add((SwiftDefinitionElement) MT584.U008DU0002);
      MT584.U0080U0002.Elements.Add((SwiftDefinitionElement) MT584.U008AU0002);
      MT584.U008EU0002 = new SwiftTagChoiceDefinition("Choice", "");
      MT584.U008EU0002.Mandatory = false;
      MT584.U008EU0002.Multiple = true;
      MT584.U008FU0002 = new SwiftTagDefinition("TypeOfFinancialInstrument_B1_12A", "Type of Financial Instrument");
      MT584.U008FU0002.TagName = ":12A::";
      MT584.U008FU0002.Multiple = true;
      MT584.U0090U0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U008FU0002.Elements.Add((SwiftDefinitionElement) MT584.U0090U0002);
      MT584.U0091U0002 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT584.U008FU0002.Elements.Add((SwiftDefinitionElement) MT584.U0091U0002);
      MT584.U0092U0002 = new SwiftTagSubItemDefinition("InstrumentCode", "Instrument Code or Description");
      MT584.U008FU0002.Elements.Add((SwiftDefinitionElement) MT584.U0092U0002);
      MT584.U008EU0002.Elements.Add((SwiftDefinitionElement) MT584.U008FU0002);
      MT584.U0093U0002 = new SwiftTagDefinition("TypeOfFinancialInstrument_B1_12B", "Type of Financial Instrument");
      MT584.U0093U0002.TagName = ":12B::";
      MT584.U0093U0002.Multiple = true;
      MT584.U0094U0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0093U0002.Elements.Add((SwiftDefinitionElement) MT584.U0094U0002);
      MT584.U0095U0002 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT584.U0093U0002.Elements.Add((SwiftDefinitionElement) MT584.U0095U0002);
      MT584.U0096U0002 = new SwiftTagSubItemDefinition("InstrumentTypeCode", "Instrument Type Code");
      MT584.U0093U0002.Elements.Add((SwiftDefinitionElement) MT584.U0096U0002);
      MT584.U008EU0002.Elements.Add((SwiftDefinitionElement) MT584.U0093U0002);
      MT584.U0097U0002 = new SwiftTagDefinition("TypeOfFinancialInstrument_B1_12C", "Type of Financial Instrument");
      MT584.U0097U0002.TagName = ":12C::";
      MT584.U0097U0002.Multiple = true;
      MT584.U0098U0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0097U0002.Elements.Add((SwiftDefinitionElement) MT584.U0098U0002);
      MT584.U0099U0002 = new SwiftTagSubItemDefinition("CFICode", "CFI Code");
      MT584.U0097U0002.Elements.Add((SwiftDefinitionElement) MT584.U0099U0002);
      MT584.U008EU0002.Elements.Add((SwiftDefinitionElement) MT584.U0097U0002);
      MT584.U0080U0002.Elements.Add((SwiftDefinitionElement) MT584.U008EU0002);
      MT584.U009AU0002 = new SwiftTagDefinition("Currency_B1_11A", "Currency of Denomination");
      MT584.U009AU0002.TagName = ":11A::";
      MT584.U009AU0002.Mandatory = false;
      MT584.U009BU0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U009AU0002.Elements.Add((SwiftDefinitionElement) MT584.U009BU0002);
      MT584.U009CU0002 = new SwiftTagSubItemDefinition("CurrencyCode", "Currency Code");
      MT584.U009AU0002.Elements.Add((SwiftDefinitionElement) MT584.U009CU0002);
      MT584.U0080U0002.Elements.Add((SwiftDefinitionElement) MT584.U009AU0002);
      MT584.U009DU0002 = new SwiftTagDefinition("Date_B1_98A", "Date/Time");
      MT584.U009DU0002.TagName = ":98A::";
      MT584.U009DU0002.Mandatory = false;
      MT584.U009DU0002.Multiple = true;
      MT584.U009EU0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U009DU0002.Elements.Add((SwiftDefinitionElement) MT584.U009EU0002);
      MT584.U009FU0002 = new SwiftTagSubItemDefinition("Date", "Date");
      MT584.U009DU0002.Elements.Add((SwiftDefinitionElement) MT584.U009FU0002);
      MT584.U0080U0002.Elements.Add((SwiftDefinitionElement) MT584.U009DU0002);
      MT584.U0001U0003 = new SwiftTagDefinition("Rate_B1_92A", "Rate");
      MT584.U0001U0003.TagName = ":92A::";
      MT584.U0001U0003.Mandatory = false;
      MT584.U0001U0003.Multiple = true;
      MT584.U0002U0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0001U0003.Elements.Add((SwiftDefinitionElement) MT584.U0002U0003);
      MT584.U0003U0003 = new SwiftTagSubItemDefinition("SignRate", "Sign Rate");
      MT584.U0001U0003.Elements.Add((SwiftDefinitionElement) MT584.U0003U0003);
      MT584.U0080U0002.Elements.Add((SwiftDefinitionElement) MT584.U0001U0003);
      MT584.U0004U0003 = new SwiftTagChoiceDefinition("Choice", "");
      MT584.U0004U0003.Mandatory = false;
      MT584.U0004U0003.Multiple = true;
      MT584.U0005U0003 = new SwiftTagDefinition("NumberIdentification_B1_13A", "Number Identification");
      MT584.U0005U0003.TagName = ":13A::";
      MT584.U0005U0003.Multiple = true;
      MT584.U0006U0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0005U0003.Elements.Add((SwiftDefinitionElement) MT584.U0006U0003);
      MT584.U0007U0003 = new SwiftTagSubItemDefinition("NumberId", "Number Id");
      MT584.U0005U0003.Elements.Add((SwiftDefinitionElement) MT584.U0007U0003);
      MT584.U0004U0003.Elements.Add((SwiftDefinitionElement) MT584.U0005U0003);
      MT584.U0008U0003 = new SwiftTagDefinition("NumberIdentification_B1_13B", "Number Identification");
      MT584.U0008U0003.TagName = ":13B::";
      MT584.U0008U0003.Multiple = true;
      MT584.U000EU0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0008U0003.Elements.Add((SwiftDefinitionElement) MT584.U000EU0003);
      MT584.U000FU0003 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT584.U0008U0003.Elements.Add((SwiftDefinitionElement) MT584.U000FU0003);
      MT584.U0010U0003 = new SwiftTagSubItemDefinition("Number_13B", "Number");
      MT584.U0008U0003.Elements.Add((SwiftDefinitionElement) MT584.U0010U0003);
      MT584.U0004U0003.Elements.Add((SwiftDefinitionElement) MT584.U0008U0003);
      MT584.U0080U0002.Elements.Add((SwiftDefinitionElement) MT584.U0004U0003);
      MT584.U0011U0003 = new SwiftTagDefinition("Flag_B1_17B", "Flag");
      MT584.U0011U0003.TagName = ":17B::";
      MT584.U0011U0003.Mandatory = false;
      MT584.U0011U0003.Multiple = true;
      MT584.U0012U0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0011U0003.Elements.Add((SwiftDefinitionElement) MT584.U0012U0003);
      MT584.U0013U0003 = new SwiftTagSubItemDefinition("Flag", "Flag");
      MT584.U0011U0003.Elements.Add((SwiftDefinitionElement) MT584.U0013U0003);
      MT584.U0080U0002.Elements.Add((SwiftDefinitionElement) MT584.U0011U0003);
      MT584.U0014U0003 = new SwiftTagChoiceDefinition("Choice", "");
      MT584.U0014U0003.Mandatory = false;
      MT584.U0014U0003.Multiple = true;
      MT584.U0015U0003 = new SwiftTagDefinition("Price_B1_90A", "Price");
      MT584.U0015U0003.TagName = ":90A::";
      MT584.U0015U0003.Multiple = true;
      MT584.U0016U0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0015U0003.Elements.Add((SwiftDefinitionElement) MT584.U0016U0003);
      MT584.U0017U0003 = new SwiftTagSubItemDefinition("Price", "Price");
      MT584.U0018U0003 = new SwiftTagSubItemDefinition("PercentageTypeCode", "Percentage Type Code");
      MT584.U0017U0003.Elements.Add((SwiftDefinitionElement) MT584.U0018U0003);
      MT584.U0019U0003 = new SwiftTagSubItemDefinition("Price_1", "Price");
      MT584.U0017U0003.Elements.Add((SwiftDefinitionElement) MT584.U0019U0003);
      MT584.U0015U0003.Elements.Add((SwiftDefinitionElement) MT584.U0017U0003);
      MT584.U0014U0003.Elements.Add((SwiftDefinitionElement) MT584.U0015U0003);
      MT584.U001AU0003 = new SwiftTagDefinition("Price_B1_90B", "Price");
      MT584.U001AU0003.TagName = ":90B::";
      MT584.U001AU0003.Multiple = true;
      MT584.U001BU0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U001AU0003.Elements.Add((SwiftDefinitionElement) MT584.U001BU0003);
      MT584.U001CU0003 = new SwiftTagSubItemDefinition("Price", "Price");
      MT584.U001DU0003 = new SwiftTagSubItemDefinition("AmountTypeCode", "Amount Type Code");
      MT584.U001CU0003.Elements.Add((SwiftDefinitionElement) MT584.U001DU0003);
      MT584.U001EU0003 = new SwiftTagSubItemDefinition("CurrencyCodeAndPrice", "Currency Code, Price");
      MT584.U001FU0003 = new SwiftTagSubItemDefinition("CurrencyCode", "Currency Code");
      MT584.U001EU0003.Elements.Add((SwiftDefinitionElement) MT584.U001FU0003);
      MT584.U007FU0003 = new SwiftTagSubItemDefinition("Price", "Price");
      MT584.U001EU0003.Elements.Add((SwiftDefinitionElement) MT584.U007FU0003);
      MT584.U001CU0003.Elements.Add((SwiftDefinitionElement) MT584.U001EU0003);
      MT584.U001AU0003.Elements.Add((SwiftDefinitionElement) MT584.U001CU0003);
      MT584.U0014U0003.Elements.Add((SwiftDefinitionElement) MT584.U001AU0003);
      MT584.U0080U0002.Elements.Add((SwiftDefinitionElement) MT584.U0014U0003);
      MT584.U0080U0003 = new SwiftTagDefinition("QuantityOfFinancialInstrument_B1_36B", "Quantity of Financial Instrument");
      MT584.U0080U0003.TagName = ":36B::";
      MT584.U0080U0003.Mandatory = false;
      MT584.U0080U0003.Multiple = true;
      MT584.U0081U0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0080U0003.Elements.Add((SwiftDefinitionElement) MT584.U0081U0003);
      MT584.U0082U0003 = new SwiftTagSubItemDefinition("QuantityOfFinancialInstrument", "Quantity of Financial Instrument");
      MT584.U0083U0003 = new SwiftTagSubItemDefinition("QuantityTypeCode", "Quantity Type Code");
      MT584.U0082U0003.Elements.Add((SwiftDefinitionElement) MT584.U0083U0003);
      MT584.U0084U0003 = new SwiftTagSubItemDefinition("Quantity", "Quantity");
      MT584.U0082U0003.Elements.Add((SwiftDefinitionElement) MT584.U0084U0003);
      MT584.U0080U0003.Elements.Add((SwiftDefinitionElement) MT584.U0082U0003);
      MT584.U0080U0002.Elements.Add((SwiftDefinitionElement) MT584.U0080U0003);
      MT584.U0086U0003 = new SwiftTagDefinition("IdentificationOfFinancialInstrument_B1_35B", "Identification of the Financial Instrument");
      MT584.U0086U0003.TagName = ":35B:";
      MT584.U0086U0003.Mandatory = false;
      MT584.U0086U0003.Multiple = true;
      MT584.U0087U0003 = new SwiftTagSubItemDefinition("IdentificationOfSecurity", "Identification of Security");
      MT584.U0087U0003.Mandatory = false;
      MT584.U0088U0003 = new SwiftTagSubItemDefinition("IdentificationOfSecurity_1", "Identification of Security");
      MT584.U0087U0003.Elements.Add((SwiftDefinitionElement) MT584.U0088U0003);
      MT584.U0086U0003.Elements.Add((SwiftDefinitionElement) MT584.U0087U0003);
      MT584.U0089U0003 = new SwiftTagSubItemDefinition("DescriptionOfSecurity", "Description Of Security");
      MT584.U0089U0003.Mandatory = false;
      MT584.U0086U0003.Elements.Add((SwiftDefinitionElement) MT584.U0089U0003);
      MT584.U0080U0002.Elements.Add((SwiftDefinitionElement) MT584.U0086U0003);
      MT584.U008AU0003 = new SwiftTagDefinition("Narrative_B1_70E", "Financial Instrument Attribute Narrative");
      MT584.U008AU0003.TagName = ":70E::";
      MT584.U008AU0003.Mandatory = false;
      MT584.U008BU0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U008AU0003.Elements.Add((SwiftDefinitionElement) MT584.U008BU0003);
      MT584.U008CU0003 = new SwiftTagSubItemDefinition("Narrative", "Financial Instrument Attribute Narrative");
      MT584.U008AU0003.Elements.Add((SwiftDefinitionElement) MT584.U008CU0003);
      MT584.U0080U0002.Elements.Add((SwiftDefinitionElement) MT584.U008AU0003);
      MT584.U008DU0003 = new SwiftTagDefinition("EndOfBlock_B1_16S", "End Of Block");
      MT584.U008DU0003.TagName = ":16S:FIA";
      MT584.U008EU0003 = new SwiftTagSubItemDefinition("EndOfBlock", "End of Block");
      MT584.U008EU0003.Mandatory = false;
      MT584.U008DU0003.Elements.Add((SwiftDefinitionElement) MT584.U008EU0003);
      MT584.U0080U0002.Elements.Add((SwiftDefinitionElement) MT584.U008DU0003);
      MT584.U001AU0002.Elements.Add((SwiftDefinitionElement) MT584.U0080U0002);
      MT584.U008FU0003 = new SwiftTagSequenceDefinition("SequenceB2", "Status");
      MT584.U008FU0003.Multiple = true;
      MT584.U0090U0003 = new SwiftTagDefinition("StartOfBlock_B2_16R", "Start Of Block");
      MT584.U0090U0003.TagName = ":16R:STAT";
      MT584.U0091U0003 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT584.U0091U0003.Mandatory = false;
      MT584.U0090U0003.Elements.Add((SwiftDefinitionElement) MT584.U0091U0003);
      MT584.U008FU0003.Elements.Add((SwiftDefinitionElement) MT584.U0090U0003);
      MT584.U0092U0003 = new SwiftTagDefinition("Reference_B2_20C", "Master Reference");
      MT584.U0092U0003.TagName = ":20C::";
      MT584.U0092U0003.Mandatory = false;
      MT584.U0093U0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0092U0003.Elements.Add((SwiftDefinitionElement) MT584.U0093U0003);
      MT584.U0094U0003 = new SwiftTagSubItemDefinition("Reference", "Reference");
      MT584.U0092U0003.Elements.Add((SwiftDefinitionElement) MT584.U0094U0003);
      MT584.U008FU0003.Elements.Add((SwiftDefinitionElement) MT584.U0092U0003);
      MT584.U0095U0003 = new SwiftTagDefinition("StatusCode_B2_25D", "Status Code");
      MT584.U0095U0003.TagName = ":25D::";
      MT584.U0096U0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0095U0003.Elements.Add((SwiftDefinitionElement) MT584.U0096U0003);
      MT584.U0097U0003 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT584.U0095U0003.Elements.Add((SwiftDefinitionElement) MT584.U0097U0003);
      MT584.U0098U0003 = new SwiftTagSubItemDefinition("StatusCode", "Status Code");
      MT584.U0095U0003.Elements.Add((SwiftDefinitionElement) MT584.U0098U0003);
      MT584.U008FU0003.Elements.Add((SwiftDefinitionElement) MT584.U0095U0003);
      MT584.U0099U0003 = new SwiftTagDefinition("ReasonCode_B2_24B", "Reason Code");
      MT584.U0099U0003.TagName = ":24B::";
      MT584.U0099U0003.Mandatory = false;
      MT584.U009AU0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0099U0003.Elements.Add((SwiftDefinitionElement) MT584.U009AU0003);
      MT584.U009BU0003 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT584.U0099U0003.Elements.Add((SwiftDefinitionElement) MT584.U009BU0003);
      MT584.U009CU0003 = new SwiftTagSubItemDefinition("ReasonCode", "Reason Code");
      MT584.U0099U0003.Elements.Add((SwiftDefinitionElement) MT584.U009CU0003);
      MT584.U008FU0003.Elements.Add((SwiftDefinitionElement) MT584.U0099U0003);
      MT584.U009DU0003 = new SwiftTagSequenceDefinition("SequenceB2a", "Linkages");
      MT584.U009DU0003.Mandatory = false;
      MT584.U009DU0003.Multiple = true;
      MT584.U009EU0003 = new SwiftTagDefinition("StartOfBlock_B2a_16R", "Start Of Block");
      MT584.U009EU0003.TagName = ":16R:LINK";
      MT584.U009FU0003 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT584.U009FU0003.Mandatory = false;
      MT584.U009EU0003.Elements.Add((SwiftDefinitionElement) MT584.U009FU0003);
      MT584.U009DU0003.Elements.Add((SwiftDefinitionElement) MT584.U009EU0003);
      MT584.U0001U0004 = new SwiftTagChoiceDefinition("Choice", "");
      MT584.U0001U0004.Mandatory = false;
      MT584.U0001U0004.Multiple = true;
      MT584.U0002U0004 = new SwiftTagDefinition("NumberIdentification_B2a_13A", "Linked Message");
      MT584.U0002U0004.TagName = ":13A::";
      MT584.U0003U0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0002U0004.Elements.Add((SwiftDefinitionElement) MT584.U0003U0004);
      MT584.U0004U0004 = new SwiftTagSubItemDefinition("NumberId", "Number Id");
      MT584.U0002U0004.Elements.Add((SwiftDefinitionElement) MT584.U0004U0004);
      MT584.U0001U0004.Elements.Add((SwiftDefinitionElement) MT584.U0002U0004);
      MT584.U0005U0004 = new SwiftTagDefinition("NumberIdentification_B2a_13B", "Linked Message");
      MT584.U0005U0004.TagName = ":13B::";
      MT584.U0006U0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0005U0004.Elements.Add((SwiftDefinitionElement) MT584.U0006U0004);
      MT584.U0007U0004 = new SwiftTagSubItemDefinition("DataSource", "Data Source Scheme");
      MT584.U0005U0004.Elements.Add((SwiftDefinitionElement) MT584.U0007U0004);
      MT584.U0008U0004 = new SwiftTagSubItemDefinition("Number_13B", "Number");
      MT584.U0005U0004.Elements.Add((SwiftDefinitionElement) MT584.U0008U0004);
      MT584.U0001U0004.Elements.Add((SwiftDefinitionElement) MT584.U0005U0004);
      MT584.U009DU0003.Elements.Add((SwiftDefinitionElement) MT584.U0001U0004);
      MT584.U000EU0004 = new SwiftTagDefinition("Reference_B2a_20C", "Reference");
      MT584.U000EU0004.TagName = ":20C::";
      MT584.U000FU0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U000EU0004.Elements.Add((SwiftDefinitionElement) MT584.U000FU0004);
      MT584.U0010U0004 = new SwiftTagSubItemDefinition("Reference", "Reference");
      MT584.U000EU0004.Elements.Add((SwiftDefinitionElement) MT584.U0010U0004);
      MT584.U009DU0003.Elements.Add((SwiftDefinitionElement) MT584.U000EU0004);
      MT584.U0011U0004 = new SwiftTagDefinition("EndOfBlock_B2a_16S", "End Of Block");
      MT584.U0011U0004.TagName = ":16S:LINK";
      MT584.U0012U0004 = new SwiftTagSubItemDefinition("EndOfBlock", "End of Block");
      MT584.U0012U0004.Mandatory = false;
      MT584.U0011U0004.Elements.Add((SwiftDefinitionElement) MT584.U0012U0004);
      MT584.U009DU0003.Elements.Add((SwiftDefinitionElement) MT584.U0011U0004);
      MT584.U008FU0003.Elements.Add((SwiftDefinitionElement) MT584.U009DU0003);
      MT584.U0013U0004 = new SwiftTagSequenceDefinition("SequenceB2b", "Trade Details");
      MT584.U0013U0004.Mandatory = false;
      MT584.U0013U0004.Multiple = true;
      MT584.U0014U0004 = new SwiftTagDefinition("StartOfBlock_B2b_16R", "Start Of Block");
      MT584.U0014U0004.TagName = ":16R:TRADET";
      MT584.U0015U0004 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT584.U0015U0004.Mandatory = false;
      MT584.U0014U0004.Elements.Add((SwiftDefinitionElement) MT584.U0015U0004);
      MT584.U0013U0004.Elements.Add((SwiftDefinitionElement) MT584.U0014U0004);
      MT584.U0016U0004 = new SwiftTagChoiceDefinition("Choice", "");
      MT584.U0016U0004.Multiple = true;
      MT584.U0017U0004 = new SwiftTagDefinition("Date_B2b_98A", "Date/Time");
      MT584.U0017U0004.TagName = ":98A::";
      MT584.U0017U0004.Multiple = true;
      MT584.U0018U0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0017U0004.Elements.Add((SwiftDefinitionElement) MT584.U0018U0004);
      MT584.U0019U0004 = new SwiftTagSubItemDefinition("Date", "Date");
      MT584.U0017U0004.Elements.Add((SwiftDefinitionElement) MT584.U0019U0004);
      MT584.U0016U0004.Elements.Add((SwiftDefinitionElement) MT584.U0017U0004);
      MT584.U001AU0004 = new SwiftTagDefinition("DateCode_B2b_98B", "Date/Time");
      MT584.U001AU0004.TagName = ":98B::";
      MT584.U001AU0004.Multiple = true;
      MT584.U001BU0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U001AU0004.Elements.Add((SwiftDefinitionElement) MT584.U001BU0004);
      MT584.U001CU0004 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT584.U001AU0004.Elements.Add((SwiftDefinitionElement) MT584.U001CU0004);
      MT584.U001DU0004 = new SwiftTagSubItemDefinition("DateCode", "Date code");
      MT584.U001AU0004.Elements.Add((SwiftDefinitionElement) MT584.U001DU0004);
      MT584.U0016U0004.Elements.Add((SwiftDefinitionElement) MT584.U001AU0004);
      MT584.U001EU0004 = new SwiftTagDefinition("DateTime_B2b_98C", "Date/Time");
      MT584.U001EU0004.TagName = ":98C::";
      MT584.U001EU0004.Multiple = true;
      MT584.U001FU0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U001EU0004.Elements.Add((SwiftDefinitionElement) MT584.U001FU0004);
      MT584.U007FU0004 = new SwiftTagSubItemDefinition("DateTime", "Date/Time");
      MT584.U0080U0004 = new SwiftTagSubItemDefinition("Date", "Date");
      MT584.U007FU0004.Elements.Add((SwiftDefinitionElement) MT584.U0080U0004);
      MT584.U0081U0004 = new SwiftTagSubItemDefinition("Time", "Time");
      MT584.U007FU0004.Elements.Add((SwiftDefinitionElement) MT584.U0081U0004);
      MT584.U001EU0004.Elements.Add((SwiftDefinitionElement) MT584.U007FU0004);
      MT584.U0016U0004.Elements.Add((SwiftDefinitionElement) MT584.U001EU0004);
      MT584.U0013U0004.Elements.Add((SwiftDefinitionElement) MT584.U0016U0004);
      MT584.U0082U0004 = new SwiftTagChoiceDefinition("Choice", "");
      MT584.U0082U0004.Multiple = true;
      MT584.U0083U0004 = new SwiftTagDefinition("Indicator_B2b_22F", "Indicator");
      MT584.U0083U0004.TagName = ":22F::";
      MT584.U0083U0004.Multiple = true;
      MT584.U0084U0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0083U0004.Elements.Add((SwiftDefinitionElement) MT584.U0084U0004);
      MT584.U0086U0004 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT584.U0083U0004.Elements.Add((SwiftDefinitionElement) MT584.U0086U0004);
      MT584.U0087U0004 = new SwiftTagSubItemDefinition("Indicator", "Indicator");
      MT584.U0083U0004.Elements.Add((SwiftDefinitionElement) MT584.U0087U0004);
      MT584.U0082U0004.Elements.Add((SwiftDefinitionElement) MT584.U0083U0004);
      MT584.U0088U0004 = new SwiftTagDefinition("Indicator_B2b_22H", "Indicator");
      MT584.U0088U0004.TagName = ":22H::";
      MT584.U0088U0004.Multiple = true;
      MT584.U0089U0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0088U0004.Elements.Add((SwiftDefinitionElement) MT584.U0089U0004);
      MT584.U008AU0004 = new SwiftTagSubItemDefinition("Indicator", "Indicator");
      MT584.U0088U0004.Elements.Add((SwiftDefinitionElement) MT584.U008AU0004);
      MT584.U0082U0004.Elements.Add((SwiftDefinitionElement) MT584.U0088U0004);
      MT584.U0013U0004.Elements.Add((SwiftDefinitionElement) MT584.U0082U0004);
      MT584.U008BU0004 = new SwiftTagDefinition("QuantityOfFinancialInstrument_B2b_36B", "Quantity of Financial Instrument Traded");
      MT584.U008BU0004.TagName = ":36B::";
      MT584.U008BU0004.Mandatory = false;
      MT584.U008BU0004.Multiple = true;
      MT584.U008CU0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U008BU0004.Elements.Add((SwiftDefinitionElement) MT584.U008CU0004);
      MT584.U008DU0004 = new SwiftTagSubItemDefinition("QuantityOfFinancialInstrument", "Quantity of Financial Instrument");
      MT584.U008EU0004 = new SwiftTagSubItemDefinition("QuantityTypeCode", "Quantity Type Code");
      MT584.U008DU0004.Elements.Add((SwiftDefinitionElement) MT584.U008EU0004);
      MT584.U008FU0004 = new SwiftTagSubItemDefinition("Quantity", "Quantity");
      MT584.U008DU0004.Elements.Add((SwiftDefinitionElement) MT584.U008FU0004);
      MT584.U008BU0004.Elements.Add((SwiftDefinitionElement) MT584.U008DU0004);
      MT584.U0013U0004.Elements.Add((SwiftDefinitionElement) MT584.U008BU0004);
      MT584.U0090U0004 = new SwiftTagDefinition("Amount_B2b_19A", "Settlement Amount");
      MT584.U0090U0004.TagName = ":19A::";
      MT584.U0090U0004.Mandatory = false;
      MT584.U0091U0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0090U0004.Elements.Add((SwiftDefinitionElement) MT584.U0091U0004);
      MT584.U0092U0004 = new SwiftTagSubItemDefinition("SignCodeAmount", "Sign, Currency Code, Amount");
      MT584.U0090U0004.Elements.Add((SwiftDefinitionElement) MT584.U0092U0004);
      MT584.U0013U0004.Elements.Add((SwiftDefinitionElement) MT584.U0090U0004);
      MT584.U0093U0004 = new SwiftTagDefinition("Currency_B2b_11A", "Currency");
      MT584.U0093U0004.TagName = ":11A::";
      MT584.U0093U0004.Mandatory = false;
      MT584.U0094U0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0093U0004.Elements.Add((SwiftDefinitionElement) MT584.U0094U0004);
      MT584.U0095U0004 = new SwiftTagSubItemDefinition("CurrencyCode", "Currency Code");
      MT584.U0093U0004.Elements.Add((SwiftDefinitionElement) MT584.U0095U0004);
      MT584.U0013U0004.Elements.Add((SwiftDefinitionElement) MT584.U0093U0004);
      MT584.U0096U0004 = new SwiftTagSequenceDefinition("SequenceB2b1", "Confirmation Parties");
      MT584.U0096U0004.Mandatory = false;
      MT584.U0096U0004.Multiple = true;
      MT584.U0097U0004 = new SwiftTagDefinition("StartOfBlock_B2b1_16R", "Start Of Block");
      MT584.U0097U0004.TagName = ":16R:CONFPRTY";
      MT584.U0098U0004 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT584.U0098U0004.Mandatory = false;
      MT584.U0097U0004.Elements.Add((SwiftDefinitionElement) MT584.U0098U0004);
      MT584.U0096U0004.Elements.Add((SwiftDefinitionElement) MT584.U0097U0004);
      MT584.U0099U0004 = new SwiftTagChoiceDefinition("Choice", "");
      MT584.U0099U0004.Multiple = true;
      MT584.U009AU0004 = new SwiftTagDefinition("Party_B2b1_95C", "Party");
      MT584.U009AU0004.TagName = ":95C::";
      MT584.U009AU0004.Multiple = true;
      MT584.U009BU0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U009AU0004.Elements.Add((SwiftDefinitionElement) MT584.U009BU0004);
      MT584.U009CU0004 = new SwiftTagSubItemDefinition("CountryCode", "Country Code");
      MT584.U009AU0004.Elements.Add((SwiftDefinitionElement) MT584.U009CU0004);
      MT584.U0099U0004.Elements.Add((SwiftDefinitionElement) MT584.U009AU0004);
      MT584.U009DU0004 = new SwiftTagDefinition("Party_B2b1_95P", "Party");
      MT584.U009DU0004.TagName = ":95P::";
      MT584.U009DU0004.Multiple = true;
      MT584.U009EU0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U009DU0004.Elements.Add((SwiftDefinitionElement) MT584.U009EU0004);
      MT584.U009FU0004 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT584.U009DU0004.Elements.Add((SwiftDefinitionElement) MT584.U009FU0004);
      MT584.U0099U0004.Elements.Add((SwiftDefinitionElement) MT584.U009DU0004);
      MT584.U0001U0005 = new SwiftTagDefinition("Party_B2b1_95R", "Party");
      MT584.U0001U0005.TagName = ":95R::";
      MT584.U0001U0005.Multiple = true;
      MT584.U0002U0005 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0001U0005.Elements.Add((SwiftDefinitionElement) MT584.U0002U0005);
      MT584.U0003U0005 = new SwiftTagSubItemDefinition("DataSourceScheme", "Data Source Scheme");
      MT584.U0001U0005.Elements.Add((SwiftDefinitionElement) MT584.U0003U0005);
      MT584.U0004U0005 = new SwiftTagSubItemDefinition("ProprietaryCode", "Proprietary Code");
      MT584.U0001U0005.Elements.Add((SwiftDefinitionElement) MT584.U0004U0005);
      MT584.U0099U0004.Elements.Add((SwiftDefinitionElement) MT584.U0001U0005);
      MT584.U0005U0005 = new SwiftTagDefinition("Party_B2b1_95Q", "Party");
      MT584.U0005U0005.TagName = ":95Q::";
      MT584.U0005U0005.Multiple = true;
      MT584.U0006U0005 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0005U0005.Elements.Add((SwiftDefinitionElement) MT584.U0006U0005);
      MT584.U0007U0005 = new SwiftTagSubItemDefinition("NameAndAddress_95Q", "Name & Address");
      MT584.U0005U0005.Elements.Add((SwiftDefinitionElement) MT584.U0007U0005);
      MT584.U0099U0004.Elements.Add((SwiftDefinitionElement) MT584.U0005U0005);
      MT584.U0008U0005 = new SwiftTagDefinition("Party_B2b1_95S", "Party");
      MT584.U0008U0005.TagName = ":95S::";
      MT584.U0008U0005.Multiple = true;
      MT584.U000EU0005 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0008U0005.Elements.Add((SwiftDefinitionElement) MT584.U000EU0005);
      MT584.U000FU0005 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT584.U0008U0005.Elements.Add((SwiftDefinitionElement) MT584.U000FU0005);
      MT584.U0010U0005 = new SwiftTagSubItemDefinition("TypeOfID", "Type Of ID");
      MT584.U0008U0005.Elements.Add((SwiftDefinitionElement) MT584.U0010U0005);
      MT584.U0011U0005 = new SwiftTagSubItemDefinition("CountryCode", "Country Code");
      MT584.U0008U0005.Elements.Add((SwiftDefinitionElement) MT584.U0011U0005);
      MT584.U0012U0005 = new SwiftTagSubItemDefinition("AlternateID", "Alternate ID");
      MT584.U0008U0005.Elements.Add((SwiftDefinitionElement) MT584.U0012U0005);
      MT584.U0099U0004.Elements.Add((SwiftDefinitionElement) MT584.U0008U0005);
      MT584.U0096U0004.Elements.Add((SwiftDefinitionElement) MT584.U0099U0004);
      MT584.U0013U0005 = new SwiftTagChoiceDefinition("Choice", "");
      MT584.U0013U0005.Mandatory = false;
      MT584.U0013U0005.Multiple = true;
      MT584.U0014U0005 = new SwiftTagDefinition("Account_B2b1_97A", "Account");
      MT584.U0014U0005.TagName = ":97A::";
      MT584.U0014U0005.Multiple = true;
      MT584.U0015U0005 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0014U0005.Elements.Add((SwiftDefinitionElement) MT584.U0015U0005);
      MT584.U0016U0005 = new SwiftTagSubItemDefinition("AccountNumber", "Account Number");
      MT584.U0014U0005.Elements.Add((SwiftDefinitionElement) MT584.U0016U0005);
      MT584.U0013U0005.Elements.Add((SwiftDefinitionElement) MT584.U0014U0005);
      MT584.U0017U0005 = new SwiftTagDefinition("Account_B2b1_97B", "Account");
      MT584.U0017U0005.TagName = ":97B::";
      MT584.U0017U0005.Multiple = true;
      MT584.U0018U0005 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0017U0005.Elements.Add((SwiftDefinitionElement) MT584.U0018U0005);
      MT584.U0019U0005 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT584.U0017U0005.Elements.Add((SwiftDefinitionElement) MT584.U0019U0005);
      MT584.U001AU0005 = new SwiftTagSubItemDefinition("AccountTypeCode", "Account Type Code");
      MT584.U0017U0005.Elements.Add((SwiftDefinitionElement) MT584.U001AU0005);
      MT584.U001BU0005 = new SwiftTagSubItemDefinition("AccountNumber", "Account Number");
      MT584.U0017U0005.Elements.Add((SwiftDefinitionElement) MT584.U001BU0005);
      MT584.U0013U0005.Elements.Add((SwiftDefinitionElement) MT584.U0017U0005);
      MT584.U0096U0004.Elements.Add((SwiftDefinitionElement) MT584.U0013U0005);
      MT584.U001CU0005 = new SwiftTagChoiceDefinition("Choice", "");
      MT584.U001CU0005.Mandatory = false;
      MT584.U001CU0005.Multiple = true;
      MT584.U001DU0005 = new SwiftTagDefinition("Date_B2b1_98A", "Processing Date/Time");
      MT584.U001DU0005.TagName = ":98A::";
      MT584.U001EU0005 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U001DU0005.Elements.Add((SwiftDefinitionElement) MT584.U001EU0005);
      MT584.U001FU0005 = new SwiftTagSubItemDefinition("Date", "Date");
      MT584.U001DU0005.Elements.Add((SwiftDefinitionElement) MT584.U001FU0005);
      MT584.U001CU0005.Elements.Add((SwiftDefinitionElement) MT584.U001DU0005);
      MT584.U007FU0005 = new SwiftTagDefinition("DateTime_B2b1_98C", "Processing Date/Time");
      MT584.U007FU0005.TagName = ":98C::";
      MT584.U0080U0005 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U007FU0005.Elements.Add((SwiftDefinitionElement) MT584.U0080U0005);
      MT584.U0081U0005 = new SwiftTagSubItemDefinition("DateTime", "Date/Time");
      MT584.U0082U0005 = new SwiftTagSubItemDefinition("Date", "Date");
      MT584.U0081U0005.Elements.Add((SwiftDefinitionElement) MT584.U0082U0005);
      MT584.U0083U0005 = new SwiftTagSubItemDefinition("Time", "Time");
      MT584.U0081U0005.Elements.Add((SwiftDefinitionElement) MT584.U0083U0005);
      MT584.U007FU0005.Elements.Add((SwiftDefinitionElement) MT584.U0081U0005);
      MT584.U001CU0005.Elements.Add((SwiftDefinitionElement) MT584.U007FU0005);
      MT584.U0096U0004.Elements.Add((SwiftDefinitionElement) MT584.U001CU0005);
      MT584.U0084U0005 = new SwiftTagDefinition("Reference_B2b1_20C", "Processing Reference");
      MT584.U0084U0005.TagName = ":20C::";
      MT584.U0084U0005.Mandatory = false;
      MT584.U0086U0005 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0084U0005.Elements.Add((SwiftDefinitionElement) MT584.U0086U0005);
      MT584.U0087U0005 = new SwiftTagSubItemDefinition("Reference", "Reference");
      MT584.U0084U0005.Elements.Add((SwiftDefinitionElement) MT584.U0087U0005);
      MT584.U0096U0004.Elements.Add((SwiftDefinitionElement) MT584.U0084U0005);
      MT584.U0088U0005 = new SwiftTagChoiceDefinition("Choice", "");
      MT584.U0088U0005.Mandatory = false;
      MT584.U0088U0005.Multiple = true;
      MT584.U0089U0005 = new SwiftTagDefinition("Narrative_B2b1_70C", "Narrative");
      MT584.U0089U0005.TagName = ":70C::";
      MT584.U0089U0005.Multiple = true;
      MT584.U008AU0005 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0089U0005.Elements.Add((SwiftDefinitionElement) MT584.U008AU0005);
      MT584.U008BU0005 = new SwiftTagSubItemDefinition("Narrative", "Narrative");
      MT584.U0089U0005.Elements.Add((SwiftDefinitionElement) MT584.U008BU0005);
      MT584.U0088U0005.Elements.Add((SwiftDefinitionElement) MT584.U0089U0005);
      MT584.U008CU0005 = new SwiftTagDefinition("Narrative_B2b1_70E", "Narrative");
      MT584.U008CU0005.TagName = ":70E::";
      MT584.U008CU0005.Multiple = true;
      MT584.U008DU0005 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U008CU0005.Elements.Add((SwiftDefinitionElement) MT584.U008DU0005);
      MT584.U008EU0005 = new SwiftTagSubItemDefinition("Narrative", "Narrative");
      MT584.U008CU0005.Elements.Add((SwiftDefinitionElement) MT584.U008EU0005);
      MT584.U0088U0005.Elements.Add((SwiftDefinitionElement) MT584.U008CU0005);
      MT584.U0096U0004.Elements.Add((SwiftDefinitionElement) MT584.U0088U0005);
      MT584.U008FU0005 = new SwiftTagDefinition("Indicator_B2b1_22F", "Party Capacity Indicator");
      MT584.U008FU0005.TagName = ":22F::";
      MT584.U008FU0005.Mandatory = false;
      MT584.U0090U0005 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U008FU0005.Elements.Add((SwiftDefinitionElement) MT584.U0090U0005);
      MT584.U0091U0005 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT584.U008FU0005.Elements.Add((SwiftDefinitionElement) MT584.U0091U0005);
      MT584.U0092U0005 = new SwiftTagSubItemDefinition("Indicator", "Indicator");
      MT584.U008FU0005.Elements.Add((SwiftDefinitionElement) MT584.U0092U0005);
      MT584.U0096U0004.Elements.Add((SwiftDefinitionElement) MT584.U008FU0005);
      MT584.U0093U0005 = new SwiftTagDefinition("EndOfBlock_B2b1_16S", "End Of Block");
      MT584.U0093U0005.TagName = ":16S:CONFPRTY";
      MT584.U0094U0005 = new SwiftTagSubItemDefinition("EndOfBlock", "End of Block");
      MT584.U0094U0005.Mandatory = false;
      MT584.U0093U0005.Elements.Add((SwiftDefinitionElement) MT584.U0094U0005);
      MT584.U0096U0004.Elements.Add((SwiftDefinitionElement) MT584.U0093U0005);
      MT584.U0013U0004.Elements.Add((SwiftDefinitionElement) MT584.U0096U0004);
      MT584.U0095U0005 = new SwiftTagSequenceDefinition("SequenceB2b2", "Amounts");
      MT584.U0095U0005.Mandatory = false;
      MT584.U0095U0005.Multiple = true;
      MT584.U0096U0005 = new SwiftTagDefinition("StartOfBlock_B2b2_16R", "Start Of Block");
      MT584.U0096U0005.TagName = ":16R:AMT";
      MT584.U0097U0005 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT584.U0097U0005.Mandatory = false;
      MT584.U0096U0005.Elements.Add((SwiftDefinitionElement) MT584.U0097U0005);
      MT584.U0095U0005.Elements.Add((SwiftDefinitionElement) MT584.U0096U0005);
      MT584.U0098U0005 = new SwiftTagDefinition("Amount_B2b2_19A", "Amount");
      MT584.U0098U0005.TagName = ":19A::";
      MT584.U0098U0005.Multiple = true;
      MT584.U0099U0005 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0098U0005.Elements.Add((SwiftDefinitionElement) MT584.U0099U0005);
      MT584.U009AU0005 = new SwiftTagSubItemDefinition("SignCodeAmount", "Sign, Currency Code, Amount");
      MT584.U0098U0005.Elements.Add((SwiftDefinitionElement) MT584.U009AU0005);
      MT584.U0095U0005.Elements.Add((SwiftDefinitionElement) MT584.U0098U0005);
      MT584.U009BU0005 = new SwiftTagChoiceDefinition("Choice", "");
      MT584.U009BU0005.Mandatory = false;
      MT584.U009BU0005.Multiple = true;
      MT584.U009CU0005 = new SwiftTagDefinition("Date_B2b2_98A", "Value Date");
      MT584.U009CU0005.TagName = ":98A::";
      MT584.U009DU0005 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U009CU0005.Elements.Add((SwiftDefinitionElement) MT584.U009DU0005);
      MT584.U009EU0005 = new SwiftTagSubItemDefinition("Date", "Date");
      MT584.U009CU0005.Elements.Add((SwiftDefinitionElement) MT584.U009EU0005);
      MT584.U009BU0005.Elements.Add((SwiftDefinitionElement) MT584.U009CU0005);
      MT584.U009FU0005 = new SwiftTagDefinition("DateTime_B2b2_98C", "Value Date");
      MT584.U009FU0005.TagName = ":98C::";
      MT584.U0001U0006 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U009FU0005.Elements.Add((SwiftDefinitionElement) MT584.U0001U0006);
      MT584.U0002U0006 = new SwiftTagSubItemDefinition("DateTime", "Value Date");
      MT584.U0003U0006 = new SwiftTagSubItemDefinition("Date", "Date");
      MT584.U0002U0006.Elements.Add((SwiftDefinitionElement) MT584.U0003U0006);
      MT584.U0004U0006 = new SwiftTagSubItemDefinition("Time", "Time");
      MT584.U0002U0006.Elements.Add((SwiftDefinitionElement) MT584.U0004U0006);
      MT584.U009FU0005.Elements.Add((SwiftDefinitionElement) MT584.U0002U0006);
      MT584.U009BU0005.Elements.Add((SwiftDefinitionElement) MT584.U009FU0005);
      MT584.U0095U0005.Elements.Add((SwiftDefinitionElement) MT584.U009BU0005);
      MT584.U0005U0006 = new SwiftTagDefinition("Rate_B2b2_92B", "Exchange Rate");
      MT584.U0005U0006.TagName = ":92B::";
      MT584.U0005U0006.Mandatory = false;
      MT584.U0006U0006 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0005U0006.Elements.Add((SwiftDefinitionElement) MT584.U0006U0006);
      MT584.U0007U0006 = new SwiftTagSubItemDefinition("Rate", "Exchange Rate");
      MT584.U0008U0006 = new SwiftTagSubItemDefinition("FirstCurrencyCode", "First Currency Code");
      MT584.U0007U0006.Elements.Add((SwiftDefinitionElement) MT584.U0008U0006);
      MT584.U000EU0006 = new SwiftTagSubItemDefinition("SecondCurrencyCode", "Second Currency Code");
      MT584.U0007U0006.Elements.Add((SwiftDefinitionElement) MT584.U000EU0006);
      MT584.U000FU0006 = new SwiftTagSubItemDefinition("Rate_1", "Rate");
      MT584.U0007U0006.Elements.Add((SwiftDefinitionElement) MT584.U000FU0006);
      MT584.U0005U0006.Elements.Add((SwiftDefinitionElement) MT584.U0007U0006);
      MT584.U0095U0005.Elements.Add((SwiftDefinitionElement) MT584.U0005U0006);
      MT584.U0010U0006 = new SwiftTagDefinition("EndOfBlock_B2b2_16S", "End Of Block");
      MT584.U0010U0006.TagName = ":16S:AMT";
      MT584.U0011U0006 = new SwiftTagSubItemDefinition("EndOfBlock", "End of Block");
      MT584.U0011U0006.Mandatory = false;
      MT584.U0010U0006.Elements.Add((SwiftDefinitionElement) MT584.U0011U0006);
      MT584.U0095U0005.Elements.Add((SwiftDefinitionElement) MT584.U0010U0006);
      MT584.U0013U0004.Elements.Add((SwiftDefinitionElement) MT584.U0095U0005);
      MT584.U0012U0006 = new SwiftTagDefinition("EndOfBlock_B2b_16S", "End Of Block");
      MT584.U0012U0006.TagName = ":16S:TRADET";
      MT584.U0013U0006 = new SwiftTagSubItemDefinition("EndOfBlock", "End of Block");
      MT584.U0013U0006.Mandatory = false;
      MT584.U0012U0006.Elements.Add((SwiftDefinitionElement) MT584.U0013U0006);
      MT584.U0013U0004.Elements.Add((SwiftDefinitionElement) MT584.U0012U0006);
      MT584.U008FU0003.Elements.Add((SwiftDefinitionElement) MT584.U0013U0004);
      MT584.U0014U0006 = new SwiftTagDefinition("EndOfBlock_B2_16S", "End Of Block");
      MT584.U0014U0006.TagName = ":16S:STAT";
      MT584.U0015U0006 = new SwiftTagSubItemDefinition("EndOfBlock", "End of Block");
      MT584.U0015U0006.Mandatory = false;
      MT584.U0014U0006.Elements.Add((SwiftDefinitionElement) MT584.U0015U0006);
      MT584.U008FU0003.Elements.Add((SwiftDefinitionElement) MT584.U0014U0006);
      MT584.U001AU0002.Elements.Add((SwiftDefinitionElement) MT584.U008FU0003);
      MT584.U0016U0006 = new SwiftTagDefinition("EndOfBlock_B_16S", "End Of Block");
      MT584.U0016U0006.TagName = ":16S:FIN";
      MT584.U0017U0006 = new SwiftTagSubItemDefinition("EndOfBlock", "End of Block");
      MT584.U0017U0006.Mandatory = false;
      MT584.U0016U0006.Elements.Add((SwiftDefinitionElement) MT584.U0017U0006);
      MT584.U001AU0002.Elements.Add((SwiftDefinitionElement) MT584.U0016U0006);
      MT584.MessageDefinition.Elements.Add((SwiftDefinitionElement) MT584.U001AU0002);
      MT584.U0018U0006 = new SwiftTagSequenceDefinition("SequenceC", "Status");
      MT584.U0018U0006.Mandatory = false;
      MT584.U0018U0006.Multiple = true;
      MT584.U0019U0006 = new SwiftTagDefinition("StartOfBlock_C_16R", "Start Of Block");
      MT584.U0019U0006.TagName = ":16R:STAT";
      MT584.U001AU0006 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT584.U001AU0006.Mandatory = false;
      MT584.U0019U0006.Elements.Add((SwiftDefinitionElement) MT584.U001AU0006);
      MT584.U0018U0006.Elements.Add((SwiftDefinitionElement) MT584.U0019U0006);
      MT584.U001BU0006 = new SwiftTagDefinition("Reference_C_20C", "Reference");
      MT584.U001BU0006.TagName = ":20C::";
      MT584.U001CU0006 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U001BU0006.Elements.Add((SwiftDefinitionElement) MT584.U001CU0006);
      MT584.U001DU0006 = new SwiftTagSubItemDefinition("Reference", "Reference");
      MT584.U001BU0006.Elements.Add((SwiftDefinitionElement) MT584.U001DU0006);
      MT584.U0018U0006.Elements.Add((SwiftDefinitionElement) MT584.U001BU0006);
      MT584.U001EU0006 = new SwiftTagDefinition("StatusCode_C_25D", "Status Code");
      MT584.U001EU0006.TagName = ":25D::";
      MT584.U001FU0006 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U001EU0006.Elements.Add((SwiftDefinitionElement) MT584.U001FU0006);
      MT584.U007FU0006 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT584.U001EU0006.Elements.Add((SwiftDefinitionElement) MT584.U007FU0006);
      MT584.U0080U0006 = new SwiftTagSubItemDefinition("StatusCode", "Status Code");
      MT584.U001EU0006.Elements.Add((SwiftDefinitionElement) MT584.U0080U0006);
      MT584.U0018U0006.Elements.Add((SwiftDefinitionElement) MT584.U001EU0006);
      MT584.U0081U0006 = new SwiftTagDefinition("ReasonCode_C_24B", "Reason Code");
      MT584.U0081U0006.TagName = ":24B::";
      MT584.U0081U0006.Mandatory = false;
      MT584.U0082U0006 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0081U0006.Elements.Add((SwiftDefinitionElement) MT584.U0082U0006);
      MT584.U0083U0006 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT584.U0081U0006.Elements.Add((SwiftDefinitionElement) MT584.U0083U0006);
      MT584.U0084U0006 = new SwiftTagSubItemDefinition("ReasonCode", "Reason Code");
      MT584.U0081U0006.Elements.Add((SwiftDefinitionElement) MT584.U0084U0006);
      MT584.U0018U0006.Elements.Add((SwiftDefinitionElement) MT584.U0081U0006);
      MT584.U0086U0006 = new SwiftTagSequenceDefinition("SequenceC1", "Financial Instrument");
      MT584.U0086U0006.Multiple = true;
      MT584.U0087U0006 = new SwiftTagDefinition("StartOfBlock_C1_16R", "Start Of Block");
      MT584.U0087U0006.TagName = ":16R:FIN";
      MT584.U0088U0006 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT584.U0088U0006.Mandatory = false;
      MT584.U0087U0006.Elements.Add((SwiftDefinitionElement) MT584.U0088U0006);
      MT584.U0086U0006.Elements.Add((SwiftDefinitionElement) MT584.U0087U0006);
      MT584.U0089U0006 = new SwiftTagDefinition("IdentificationOfFinancialInstrument_C1_35B", "Identification of the Financial Instrument");
      MT584.U0089U0006.TagName = ":35B:";
      MT584.U008AU0006 = new SwiftTagSubItemDefinition("IdentificationOfSecurity", "Identification of Security");
      MT584.U008AU0006.Mandatory = false;
      MT584.U008BU0006 = new SwiftTagSubItemDefinition("IdentificationOfSecurity_1", "Identification of Security");
      MT584.U008AU0006.Elements.Add((SwiftDefinitionElement) MT584.U008BU0006);
      MT584.U0089U0006.Elements.Add((SwiftDefinitionElement) MT584.U008AU0006);
      MT584.U008CU0006 = new SwiftTagSubItemDefinition("DescriptionOfSecurity", "Description Of Security");
      MT584.U008CU0006.Mandatory = false;
      MT584.U0089U0006.Elements.Add((SwiftDefinitionElement) MT584.U008CU0006);
      MT584.U0086U0006.Elements.Add((SwiftDefinitionElement) MT584.U0089U0006);
      MT584.U008DU0006 = new SwiftTagSequenceDefinition("SequenceC1a", "Financial Instrument Attributes");
      MT584.U008DU0006.Mandatory = false;
      MT584.U008EU0006 = new SwiftTagDefinition("StartOfBlock_C1a_16R", "Start Of Block");
      MT584.U008EU0006.TagName = ":16R:FIA";
      MT584.U008FU0006 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT584.U008FU0006.Mandatory = false;
      MT584.U008EU0006.Elements.Add((SwiftDefinitionElement) MT584.U008FU0006);
      MT584.U008DU0006.Elements.Add((SwiftDefinitionElement) MT584.U008EU0006);
      MT584.U0090U0006 = new SwiftTagDefinition("Place_C1a_94B", "Place of Trade");
      MT584.U0090U0006.TagName = ":94B::";
      MT584.U0090U0006.Mandatory = false;
      MT584.U0091U0006 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0090U0006.Elements.Add((SwiftDefinitionElement) MT584.U0091U0006);
      MT584.U0092U0006 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT584.U0090U0006.Elements.Add((SwiftDefinitionElement) MT584.U0092U0006);
      MT584.U0093U0006 = new SwiftTagSubItemDefinition("PlaceCode", "Place Code");
      MT584.U0090U0006.Elements.Add((SwiftDefinitionElement) MT584.U0093U0006);
      MT584.U0094U0006 = new SwiftTagSubItemDefinition("Narrative", "Narrative");
      MT584.U0094U0006.Mandatory = false;
      MT584.U0095U0006 = new SwiftTagSubItemDefinition("Narrative_94B", "Narrative");
      MT584.U0094U0006.Elements.Add((SwiftDefinitionElement) MT584.U0095U0006);
      MT584.U0090U0006.Elements.Add((SwiftDefinitionElement) MT584.U0094U0006);
      MT584.U008DU0006.Elements.Add((SwiftDefinitionElement) MT584.U0090U0006);
      MT584.U0096U0006 = new SwiftTagDefinition("Indicator_C1a_22F", "Indicator");
      MT584.U0096U0006.TagName = ":22F::";
      MT584.U0096U0006.Mandatory = false;
      MT584.U0096U0006.Multiple = true;
      MT584.U0097U0006 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0096U0006.Elements.Add((SwiftDefinitionElement) MT584.U0097U0006);
      MT584.U0098U0006 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT584.U0096U0006.Elements.Add((SwiftDefinitionElement) MT584.U0098U0006);
      MT584.U0099U0006 = new SwiftTagSubItemDefinition("Indicator", "Indicator");
      MT584.U0096U0006.Elements.Add((SwiftDefinitionElement) MT584.U0099U0006);
      MT584.U008DU0006.Elements.Add((SwiftDefinitionElement) MT584.U0096U0006);
      MT584.U009AU0006 = new SwiftTagChoiceDefinition("Choice", "");
      MT584.U009AU0006.Mandatory = false;
      MT584.U009AU0006.Multiple = true;
      MT584.U009BU0006 = new SwiftTagDefinition("TypeOfFinancialInstrument_C1a_12A", "Type of Financial Instrument");
      MT584.U009BU0006.TagName = ":12A::";
      MT584.U009BU0006.Multiple = true;
      MT584.U009CU0006 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U009BU0006.Elements.Add((SwiftDefinitionElement) MT584.U009CU0006);
      MT584.U009DU0006 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT584.U009BU0006.Elements.Add((SwiftDefinitionElement) MT584.U009DU0006);
      MT584.U009EU0006 = new SwiftTagSubItemDefinition("InstrumentCode", "Instrument Code or Description");
      MT584.U009BU0006.Elements.Add((SwiftDefinitionElement) MT584.U009EU0006);
      MT584.U009AU0006.Elements.Add((SwiftDefinitionElement) MT584.U009BU0006);
      MT584.U009FU0006 = new SwiftTagDefinition("TypeOfFinancialInstrument_C1a_12B", "Type of Financial Instrument");
      MT584.U009FU0006.TagName = ":12B::";
      MT584.U009FU0006.Multiple = true;
      MT584.U0001U0007 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U009FU0006.Elements.Add((SwiftDefinitionElement) MT584.U0001U0007);
      MT584.U0002U0007 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT584.U009FU0006.Elements.Add((SwiftDefinitionElement) MT584.U0002U0007);
      MT584.U0003U0007 = new SwiftTagSubItemDefinition("InstrumentTypeCode", "Instrument Type Code");
      MT584.U009FU0006.Elements.Add((SwiftDefinitionElement) MT584.U0003U0007);
      MT584.U009AU0006.Elements.Add((SwiftDefinitionElement) MT584.U009FU0006);
      MT584.U0004U0007 = new SwiftTagDefinition("TypeOfFinancialInstrument_C1a_12C", "Type of Financial Instrument");
      MT584.U0004U0007.TagName = ":12C::";
      MT584.U0004U0007.Multiple = true;
      MT584.U0005U0007 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0004U0007.Elements.Add((SwiftDefinitionElement) MT584.U0005U0007);
      MT584.U0006U0007 = new SwiftTagSubItemDefinition("CFICode", "CFI Code");
      MT584.U0004U0007.Elements.Add((SwiftDefinitionElement) MT584.U0006U0007);
      MT584.U009AU0006.Elements.Add((SwiftDefinitionElement) MT584.U0004U0007);
      MT584.U008DU0006.Elements.Add((SwiftDefinitionElement) MT584.U009AU0006);
      MT584.U0007U0007 = new SwiftTagDefinition("Currency_C1a_11A", "Currency of Denomination");
      MT584.U0007U0007.TagName = ":11A::";
      MT584.U0007U0007.Mandatory = false;
      MT584.U0008U0007 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0007U0007.Elements.Add((SwiftDefinitionElement) MT584.U0008U0007);
      MT584.U000EU0007 = new SwiftTagSubItemDefinition("CurrencyCode", "Currency Code");
      MT584.U0007U0007.Elements.Add((SwiftDefinitionElement) MT584.U000EU0007);
      MT584.U008DU0006.Elements.Add((SwiftDefinitionElement) MT584.U0007U0007);
      MT584.U000FU0007 = new SwiftTagDefinition("Date_C1a_98A", "Date/Time");
      MT584.U000FU0007.TagName = ":98A::";
      MT584.U000FU0007.Mandatory = false;
      MT584.U000FU0007.Multiple = true;
      MT584.U0010U0007 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U000FU0007.Elements.Add((SwiftDefinitionElement) MT584.U0010U0007);
      MT584.U0011U0007 = new SwiftTagSubItemDefinition("Date", "Date");
      MT584.U000FU0007.Elements.Add((SwiftDefinitionElement) MT584.U0011U0007);
      MT584.U008DU0006.Elements.Add((SwiftDefinitionElement) MT584.U000FU0007);
      MT584.U0012U0007 = new SwiftTagDefinition("Rate_C1a_92A", "Rate");
      MT584.U0012U0007.TagName = ":92A::";
      MT584.U0012U0007.Mandatory = false;
      MT584.U0012U0007.Multiple = true;
      MT584.U0013U0007 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0012U0007.Elements.Add((SwiftDefinitionElement) MT584.U0013U0007);
      MT584.U0014U0007 = new SwiftTagSubItemDefinition("SignRate", "Sign Rate");
      MT584.U0012U0007.Elements.Add((SwiftDefinitionElement) MT584.U0014U0007);
      MT584.U008DU0006.Elements.Add((SwiftDefinitionElement) MT584.U0012U0007);
      MT584.U0015U0007 = new SwiftTagChoiceDefinition("Choice", "");
      MT584.U0015U0007.Mandatory = false;
      MT584.U0015U0007.Multiple = true;
      MT584.U0016U0007 = new SwiftTagDefinition("NumberIdentification_C1a_13A", "Number Identification");
      MT584.U0016U0007.TagName = ":13A::";
      MT584.U0016U0007.Multiple = true;
      MT584.U0017U0007 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0016U0007.Elements.Add((SwiftDefinitionElement) MT584.U0017U0007);
      MT584.U0018U0007 = new SwiftTagSubItemDefinition("NumberId", "Number Id");
      MT584.U0016U0007.Elements.Add((SwiftDefinitionElement) MT584.U0018U0007);
      MT584.U0015U0007.Elements.Add((SwiftDefinitionElement) MT584.U0016U0007);
      MT584.U0019U0007 = new SwiftTagDefinition("NumberIdentification_C1a_13B", "Number Identification");
      MT584.U0019U0007.TagName = ":13B::";
      MT584.U0019U0007.Multiple = true;
      MT584.U001AU0007 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0019U0007.Elements.Add((SwiftDefinitionElement) MT584.U001AU0007);
      MT584.U001BU0007 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT584.U0019U0007.Elements.Add((SwiftDefinitionElement) MT584.U001BU0007);
      MT584.U001CU0007 = new SwiftTagSubItemDefinition("Number_13B", "Number");
      MT584.U0019U0007.Elements.Add((SwiftDefinitionElement) MT584.U001CU0007);
      MT584.U0015U0007.Elements.Add((SwiftDefinitionElement) MT584.U0019U0007);
      MT584.U008DU0006.Elements.Add((SwiftDefinitionElement) MT584.U0015U0007);
      MT584.U001DU0007 = new SwiftTagDefinition("Flag_C1a_17B", "Flag");
      MT584.U001DU0007.TagName = ":17B::";
      MT584.U001DU0007.Mandatory = false;
      MT584.U001DU0007.Multiple = true;
      MT584.U001EU0007 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U001DU0007.Elements.Add((SwiftDefinitionElement) MT584.U001EU0007);
      MT584.U001FU0007 = new SwiftTagSubItemDefinition("Flag", "Flag");
      MT584.U001DU0007.Elements.Add((SwiftDefinitionElement) MT584.U001FU0007);
      MT584.U008DU0006.Elements.Add((SwiftDefinitionElement) MT584.U001DU0007);
      MT584.U007FU0007 = new SwiftTagChoiceDefinition("Choice", "");
      MT584.U007FU0007.Mandatory = false;
      MT584.U007FU0007.Multiple = true;
      MT584.U0080U0007 = new SwiftTagDefinition("Price_C1a_90A", "Price");
      MT584.U0080U0007.TagName = ":90A::";
      MT584.U0080U0007.Multiple = true;
      MT584.U0081U0007 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0080U0007.Elements.Add((SwiftDefinitionElement) MT584.U0081U0007);
      MT584.U0082U0007 = new SwiftTagSubItemDefinition("Price", "Price");
      MT584.U0083U0007 = new SwiftTagSubItemDefinition("PercentageTypeCode", "Percentage Type Code");
      MT584.U0082U0007.Elements.Add((SwiftDefinitionElement) MT584.U0083U0007);
      MT584.U0084U0007 = new SwiftTagSubItemDefinition("Price_1", "Price");
      MT584.U0082U0007.Elements.Add((SwiftDefinitionElement) MT584.U0084U0007);
      MT584.U0080U0007.Elements.Add((SwiftDefinitionElement) MT584.U0082U0007);
      MT584.U007FU0007.Elements.Add((SwiftDefinitionElement) MT584.U0080U0007);
      MT584.U0086U0007 = new SwiftTagDefinition("Price_C1a_90B", "Price");
      MT584.U0086U0007.TagName = ":90B::";
      MT584.U0086U0007.Multiple = true;
      MT584.U0087U0007 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0086U0007.Elements.Add((SwiftDefinitionElement) MT584.U0087U0007);
      MT584.U0088U0007 = new SwiftTagSubItemDefinition("Price", "Price");
      MT584.U0089U0007 = new SwiftTagSubItemDefinition("AmountTypeCode", "Amount Type Code");
      MT584.U0088U0007.Elements.Add((SwiftDefinitionElement) MT584.U0089U0007);
      MT584.U008AU0007 = new SwiftTagSubItemDefinition("CurrencyCodeAndPrice", "Currency Code, Price");
      MT584.U008BU0007 = new SwiftTagSubItemDefinition("CurrencyCode", "Currency Code");
      MT584.U008AU0007.Elements.Add((SwiftDefinitionElement) MT584.U008BU0007);
      MT584.U008CU0007 = new SwiftTagSubItemDefinition("Price", "Price");
      MT584.U008AU0007.Elements.Add((SwiftDefinitionElement) MT584.U008CU0007);
      MT584.U0088U0007.Elements.Add((SwiftDefinitionElement) MT584.U008AU0007);
      MT584.U0086U0007.Elements.Add((SwiftDefinitionElement) MT584.U0088U0007);
      MT584.U007FU0007.Elements.Add((SwiftDefinitionElement) MT584.U0086U0007);
      MT584.U008DU0006.Elements.Add((SwiftDefinitionElement) MT584.U007FU0007);
      MT584.U008DU0007 = new SwiftTagDefinition("QuantityOfFinancialInstrument_C1a_36B", "Quantity of Financial Instrument");
      MT584.U008DU0007.TagName = ":36B::";
      MT584.U008DU0007.Mandatory = false;
      MT584.U008DU0007.Multiple = true;
      MT584.U008EU0007 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U008DU0007.Elements.Add((SwiftDefinitionElement) MT584.U008EU0007);
      MT584.U008FU0007 = new SwiftTagSubItemDefinition("QuantityOfFinancialInstrument", "Quantity Of Financial Instrument");
      MT584.U0090U0007 = new SwiftTagSubItemDefinition("QuantityTypeCode", "Quantity Type Code");
      MT584.U008FU0007.Elements.Add((SwiftDefinitionElement) MT584.U0090U0007);
      MT584.U0091U0007 = new SwiftTagSubItemDefinition("Quantity", "Quantity");
      MT584.U008FU0007.Elements.Add((SwiftDefinitionElement) MT584.U0091U0007);
      MT584.U008DU0007.Elements.Add((SwiftDefinitionElement) MT584.U008FU0007);
      MT584.U008DU0006.Elements.Add((SwiftDefinitionElement) MT584.U008DU0007);
      MT584.U0092U0007 = new SwiftTagDefinition("IdentificationOfFinancialInstrument_C1a_35B", "Identification of the Financial Instrument");
      MT584.U0092U0007.TagName = ":35B:";
      MT584.U0092U0007.Mandatory = false;
      MT584.U0092U0007.Multiple = true;
      MT584.U0093U0007 = new SwiftTagSubItemDefinition("IdentificationOfSecurity", "Identification of Security");
      MT584.U0093U0007.Mandatory = false;
      MT584.U0094U0007 = new SwiftTagSubItemDefinition("IdentificationOfSecurity_1", "Identification of Security");
      MT584.U0093U0007.Elements.Add((SwiftDefinitionElement) MT584.U0094U0007);
      MT584.U0092U0007.Elements.Add((SwiftDefinitionElement) MT584.U0093U0007);
      MT584.U0095U0007 = new SwiftTagSubItemDefinition("DescriptionOfSecurity", "Description Of Security");
      MT584.U0095U0007.Mandatory = false;
      MT584.U0092U0007.Elements.Add((SwiftDefinitionElement) MT584.U0095U0007);
      MT584.U008DU0006.Elements.Add((SwiftDefinitionElement) MT584.U0092U0007);
      MT584.U0096U0007 = new SwiftTagDefinition("Narrative_C1a_70E", "Financial Instrument Attribute Narrative");
      MT584.U0096U0007.TagName = ":70E::";
      MT584.U0096U0007.Mandatory = false;
      MT584.U0097U0007 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0096U0007.Elements.Add((SwiftDefinitionElement) MT584.U0097U0007);
      MT584.U0098U0007 = new SwiftTagSubItemDefinition("Narrative", "Narrative");
      MT584.U0096U0007.Elements.Add((SwiftDefinitionElement) MT584.U0098U0007);
      MT584.U008DU0006.Elements.Add((SwiftDefinitionElement) MT584.U0096U0007);
      MT584.U0099U0007 = new SwiftTagDefinition("EndOfBlock_C1a_16S", "End Of Block");
      MT584.U0099U0007.TagName = ":16S:FIA";
      MT584.U009AU0007 = new SwiftTagSubItemDefinition("EndOfBlock", "End of Block");
      MT584.U009AU0007.Mandatory = false;
      MT584.U0099U0007.Elements.Add((SwiftDefinitionElement) MT584.U009AU0007);
      MT584.U008DU0006.Elements.Add((SwiftDefinitionElement) MT584.U0099U0007);
      MT584.U0086U0006.Elements.Add((SwiftDefinitionElement) MT584.U008DU0006);
      MT584.U009BU0007 = new SwiftTagSequenceDefinition("SequenceC1b", "Linkages");
      MT584.U009BU0007.Mandatory = false;
      MT584.U009BU0007.Multiple = true;
      MT584.U009CU0007 = new SwiftTagDefinition("StartOfBlock_C1b_16R", "Start Of Block");
      MT584.U009CU0007.TagName = ":16R:LINK";
      MT584.U009DU0007 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT584.U009DU0007.Mandatory = false;
      MT584.U009CU0007.Elements.Add((SwiftDefinitionElement) MT584.U009DU0007);
      MT584.U009BU0007.Elements.Add((SwiftDefinitionElement) MT584.U009CU0007);
      MT584.U009EU0007 = new SwiftTagChoiceDefinition("Choice", "");
      MT584.U009EU0007.Mandatory = false;
      MT584.U009EU0007.Multiple = true;
      MT584.U009FU0007 = new SwiftTagDefinition("NumberIdentification_C1b_13A", "Linked Message");
      MT584.U009FU0007.TagName = ":13A::";
      MT584.U0001U0008 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U009FU0007.Elements.Add((SwiftDefinitionElement) MT584.U0001U0008);
      MT584.U0002U0008 = new SwiftTagSubItemDefinition("NumberId", "Number Id");
      MT584.U009FU0007.Elements.Add((SwiftDefinitionElement) MT584.U0002U0008);
      MT584.U009EU0007.Elements.Add((SwiftDefinitionElement) MT584.U009FU0007);
      MT584.U0003U0008 = new SwiftTagDefinition("NumberIdentification_C1b_13B", "Linked Message");
      MT584.U0003U0008.TagName = ":13B::";
      MT584.U0004U0008 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0003U0008.Elements.Add((SwiftDefinitionElement) MT584.U0004U0008);
      MT584.U0005U0008 = new SwiftTagSubItemDefinition("DataSource", "Data Source Scheme");
      MT584.U0003U0008.Elements.Add((SwiftDefinitionElement) MT584.U0005U0008);
      MT584.U0006U0008 = new SwiftTagSubItemDefinition("Number_13B", "Number");
      MT584.U0003U0008.Elements.Add((SwiftDefinitionElement) MT584.U0006U0008);
      MT584.U009EU0007.Elements.Add((SwiftDefinitionElement) MT584.U0003U0008);
      MT584.U009BU0007.Elements.Add((SwiftDefinitionElement) MT584.U009EU0007);
      MT584.U0007U0008 = new SwiftTagDefinition("Reference_C1b_20C", "Reference");
      MT584.U0007U0008.TagName = ":20C::";
      MT584.U0008U0008 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0007U0008.Elements.Add((SwiftDefinitionElement) MT584.U0008U0008);
      MT584.U000EU0008 = new SwiftTagSubItemDefinition("Reference", "Reference");
      MT584.U0007U0008.Elements.Add((SwiftDefinitionElement) MT584.U000EU0008);
      MT584.U009BU0007.Elements.Add((SwiftDefinitionElement) MT584.U0007U0008);
      MT584.U000FU0008 = new SwiftTagDefinition("EndOfBlock_C1b_16S", "End Of Block");
      MT584.U000FU0008.TagName = ":16S:LINK";
      MT584.U0010U0008 = new SwiftTagSubItemDefinition("EndOfBlock", "End of Block");
      MT584.U0010U0008.Mandatory = false;
      MT584.U000FU0008.Elements.Add((SwiftDefinitionElement) MT584.U0010U0008);
      MT584.U009BU0007.Elements.Add((SwiftDefinitionElement) MT584.U000FU0008);
      MT584.U0086U0006.Elements.Add((SwiftDefinitionElement) MT584.U009BU0007);
      MT584.U0011U0008 = new SwiftTagSequenceDefinition("SequenceC1c", "Trade Details");
      MT584.U0011U0008.Mandatory = false;
      MT584.U0011U0008.Multiple = true;
      MT584.U0012U0008 = new SwiftTagDefinition("StartOfBlock_C1c_16R", "Start Of Block");
      MT584.U0012U0008.TagName = ":16R:TRADET";
      MT584.U0013U0008 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT584.U0013U0008.Mandatory = false;
      MT584.U0012U0008.Elements.Add((SwiftDefinitionElement) MT584.U0013U0008);
      MT584.U0011U0008.Elements.Add((SwiftDefinitionElement) MT584.U0012U0008);
      MT584.U0014U0008 = new SwiftTagChoiceDefinition("Choice", "");
      MT584.U0014U0008.Multiple = true;
      MT584.U0015U0008 = new SwiftTagDefinition("Date_C1c_98A", "Date/Time");
      MT584.U0015U0008.TagName = ":98A::";
      MT584.U0015U0008.Multiple = true;
      MT584.U0016U0008 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0015U0008.Elements.Add((SwiftDefinitionElement) MT584.U0016U0008);
      MT584.U0017U0008 = new SwiftTagSubItemDefinition("Date", "Date");
      MT584.U0015U0008.Elements.Add((SwiftDefinitionElement) MT584.U0017U0008);
      MT584.U0014U0008.Elements.Add((SwiftDefinitionElement) MT584.U0015U0008);
      MT584.U0018U0008 = new SwiftTagDefinition("DateCode_C1c_98B", "Date/Time");
      MT584.U0018U0008.TagName = ":98B::";
      MT584.U0018U0008.Multiple = true;
      MT584.U0019U0008 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0018U0008.Elements.Add((SwiftDefinitionElement) MT584.U0019U0008);
      MT584.U001AU0008 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT584.U0018U0008.Elements.Add((SwiftDefinitionElement) MT584.U001AU0008);
      MT584.U001BU0008 = new SwiftTagSubItemDefinition("DateCode", "Date code");
      MT584.U0018U0008.Elements.Add((SwiftDefinitionElement) MT584.U001BU0008);
      MT584.U0014U0008.Elements.Add((SwiftDefinitionElement) MT584.U0018U0008);
      MT584.U001CU0008 = new SwiftTagDefinition("DateTime_C1c_98C", "Date/Time");
      MT584.U001CU0008.TagName = ":98C::";
      MT584.U001CU0008.Multiple = true;
      MT584.U001DU0008 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U001CU0008.Elements.Add((SwiftDefinitionElement) MT584.U001DU0008);
      MT584.U001EU0008 = new SwiftTagSubItemDefinition("DateTime", "Date/ Time");
      MT584.U001FU0008 = new SwiftTagSubItemDefinition("Date", "Date");
      MT584.U001EU0008.Elements.Add((SwiftDefinitionElement) MT584.U001FU0008);
      MT584.U007FU0008 = new SwiftTagSubItemDefinition("Time", "Time");
      MT584.U001EU0008.Elements.Add((SwiftDefinitionElement) MT584.U007FU0008);
      MT584.U001CU0008.Elements.Add((SwiftDefinitionElement) MT584.U001EU0008);
      MT584.U0014U0008.Elements.Add((SwiftDefinitionElement) MT584.U001CU0008);
      MT584.U0011U0008.Elements.Add((SwiftDefinitionElement) MT584.U0014U0008);
      MT584.U0080U0008 = new SwiftTagChoiceDefinition("Choice", "");
      MT584.U0080U0008.Multiple = true;
      MT584.U0081U0008 = new SwiftTagDefinition("Indicator_C1c_22F", "Indicator");
      MT584.U0081U0008.TagName = ":22F::";
      MT584.U0081U0008.Multiple = true;
      MT584.U0082U0008 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0081U0008.Elements.Add((SwiftDefinitionElement) MT584.U0082U0008);
      MT584.U0083U0008 = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT584.U0081U0008.Elements.Add((SwiftDefinitionElement) MT584.U0083U0008);
      MT584.U0084U0008 = new SwiftTagSubItemDefinition("Indicator", "Indicator");
      MT584.U0081U0008.Elements.Add((SwiftDefinitionElement) MT584.U0084U0008);
      MT584.U0080U0008.Elements.Add((SwiftDefinitionElement) MT584.U0081U0008);
      MT584.U0086U0008 = new SwiftTagDefinition("Indicator_C1c_22H", "Indicator");
      MT584.U0086U0008.TagName = ":22H::";
      MT584.U0086U0008.Multiple = true;
      MT584.U0087U0008 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0086U0008.Elements.Add((SwiftDefinitionElement) MT584.U0087U0008);
      MT584.U0088U0008 = new SwiftTagSubItemDefinition("Indicator", "Indicator");
      MT584.U0086U0008.Elements.Add((SwiftDefinitionElement) MT584.U0088U0008);
      MT584.U0080U0008.Elements.Add((SwiftDefinitionElement) MT584.U0086U0008);
      MT584.U0011U0008.Elements.Add((SwiftDefinitionElement) MT584.U0080U0008);
      MT584.U0089U0008 = new SwiftTagDefinition("QuantityOfFinancialInstrument_C1c_36B", "Quantity of Financial Instrument Traded");
      MT584.U0089U0008.TagName = ":36B::";
      MT584.U0089U0008.Mandatory = false;
      MT584.U0089U0008.Multiple = true;
      MT584.U008AU0008 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0089U0008.Elements.Add((SwiftDefinitionElement) MT584.U008AU0008);
      MT584.U008BU0008 = new SwiftTagSubItemDefinition("QuantityOfFinancialInstrument", "Quantity of Financial Instrument Traded");
      MT584.U008CU0008 = new SwiftTagSubItemDefinition("QuantityTypeCode", "Quantity Type Code");
      MT584.U008BU0008.Elements.Add((SwiftDefinitionElement) MT584.U008CU0008);
      MT584.U008DU0008 = new SwiftTagSubItemDefinition("Quantity", "Quantity");
      MT584.U008BU0008.Elements.Add((SwiftDefinitionElement) MT584.U008DU0008);
      MT584.U0089U0008.Elements.Add((SwiftDefinitionElement) MT584.U008BU0008);
      MT584.U0011U0008.Elements.Add((SwiftDefinitionElement) MT584.U0089U0008);
      MT584.U008EU0008 = new SwiftTagDefinition("Amount_C1c_19A", "Settlement Amount");
      MT584.U008EU0008.TagName = ":19A::";
      MT584.U008EU0008.Mandatory = false;
      MT584.U008FU0008 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U008EU0008.Elements.Add((SwiftDefinitionElement) MT584.U008FU0008);
      MT584.U0090U0008 = new SwiftTagSubItemDefinition("SignCodeAmount", "Sign, Currency Code, Amount");
      MT584.U008EU0008.Elements.Add((SwiftDefinitionElement) MT584.U0090U0008);
      MT584.U0011U0008.Elements.Add((SwiftDefinitionElement) MT584.U008EU0008);
      MT584.U0091U0008 = new SwiftTagDefinition("Currency_C1c_11A", "Currency");
      MT584.U0091U0008.TagName = ":11A::";
      MT584.U0091U0008.Mandatory = false;
      MT584.U0092U0008 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0091U0008.Elements.Add((SwiftDefinitionElement) MT584.U0092U0008);
      MT584.U0093U0008 = new SwiftTagSubItemDefinition("CurrencyCode", "Currency Code");
      MT584.U0091U0008.Elements.Add((SwiftDefinitionElement) MT584.U0093U0008);
      MT584.U0011U0008.Elements.Add((SwiftDefinitionElement) MT584.U0091U0008);
      MT584.U0094U0008 = new SwiftTagSequenceDefinition("SequenceC1c1", "Confirmation Parties");
      MT584.U0094U0008.Mandatory = false;
      MT584.U0094U0008.Multiple = true;
      MT584.U0095U0008 = new SwiftTagDefinition("StartOfBlock_C1c1_16R", "Start Of Block");
      MT584.U0095U0008.TagName = ":16R:CONFPRTY";
      MT584.U0096U0008 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT584.U0096U0008.Mandatory = false;
      MT584.U0095U0008.Elements.Add((SwiftDefinitionElement) MT584.U0096U0008);
      MT584.U0094U0008.Elements.Add((SwiftDefinitionElement) MT584.U0095U0008);
      MT584.U0097U0008 = new SwiftTagChoiceDefinition("Choice", "");
      MT584.U0097U0008.Multiple = true;
      MT584.U0098U0008 = new SwiftTagDefinition("Party_C1c1_95C", "Party");
      MT584.U0098U0008.TagName = ":95C::";
      MT584.U0098U0008.Multiple = true;
      MT584.U0099U0008 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0098U0008.Elements.Add((SwiftDefinitionElement) MT584.U0099U0008);
      MT584.U009AU0008 = new SwiftTagSubItemDefinition("CountryCode", "Country Code");
      MT584.U0098U0008.Elements.Add((SwiftDefinitionElement) MT584.U009AU0008);
      MT584.U0097U0008.Elements.Add((SwiftDefinitionElement) MT584.U0098U0008);
      MT584.U009BU0008 = new SwiftTagDefinition("Party_C1c1_95P", "Party");
      MT584.U009BU0008.TagName = ":95P::";
      MT584.U009BU0008.Multiple = true;
      MT584.U009CU0008 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U009BU0008.Elements.Add((SwiftDefinitionElement) MT584.U009CU0008);
      MT584.U009DU0008 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT584.U009BU0008.Elements.Add((SwiftDefinitionElement) MT584.U009DU0008);
      MT584.U0097U0008.Elements.Add((SwiftDefinitionElement) MT584.U009BU0008);
      MT584.U009EU0008 = new SwiftTagDefinition("Party_C1c1_95R", "Party");
      MT584.U009EU0008.TagName = ":95R::";
      MT584.U009EU0008.Multiple = true;
      MT584.U009FU0008 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U009EU0008.Elements.Add((SwiftDefinitionElement) MT584.U009FU0008);
      MT584.U0001U000E = new SwiftTagSubItemDefinition("DataSourceScheme", "Data Source Scheme");
      MT584.U009EU0008.Elements.Add((SwiftDefinitionElement) MT584.U0001U000E);
      MT584.U0002U000E = new SwiftTagSubItemDefinition("ProprietaryCode", "Proprietary Code");
      MT584.U009EU0008.Elements.Add((SwiftDefinitionElement) MT584.U0002U000E);
      MT584.U0097U0008.Elements.Add((SwiftDefinitionElement) MT584.U009EU0008);
      MT584.U0003U000E = new SwiftTagDefinition("Party_C1c1_95Q", "Party");
      MT584.U0003U000E.TagName = ":95Q::";
      MT584.U0003U000E.Multiple = true;
      MT584.U0004U000E = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0003U000E.Elements.Add((SwiftDefinitionElement) MT584.U0004U000E);
      MT584.U0005U000E = new SwiftTagSubItemDefinition("NameAndAddress_95Q", "Name & Address");
      MT584.U0003U000E.Elements.Add((SwiftDefinitionElement) MT584.U0005U000E);
      MT584.U0097U0008.Elements.Add((SwiftDefinitionElement) MT584.U0003U000E);
      MT584.U0006U000E = new SwiftTagDefinition("Party_C1c1_95S", "Party");
      MT584.U0006U000E.TagName = ":95S::";
      MT584.U0006U000E.Multiple = true;
      MT584.U0007U000E = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0006U000E.Elements.Add((SwiftDefinitionElement) MT584.U0007U000E);
      MT584.U0008U000E = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT584.U0006U000E.Elements.Add((SwiftDefinitionElement) MT584.U0008U000E);
      MT584.U000EU000E = new SwiftTagSubItemDefinition("TypeOfID", "Type Of ID");
      MT584.U0006U000E.Elements.Add((SwiftDefinitionElement) MT584.U000EU000E);
      MT584.U000FU000E = new SwiftTagSubItemDefinition("CountryCode", "Country Code");
      MT584.U0006U000E.Elements.Add((SwiftDefinitionElement) MT584.U000FU000E);
      MT584.U0010U000E = new SwiftTagSubItemDefinition("AlternateID", "Alternate ID");
      MT584.U0006U000E.Elements.Add((SwiftDefinitionElement) MT584.U0010U000E);
      MT584.U0097U0008.Elements.Add((SwiftDefinitionElement) MT584.U0006U000E);
      MT584.U0094U0008.Elements.Add((SwiftDefinitionElement) MT584.U0097U0008);
      MT584.U0011U000E = new SwiftTagChoiceDefinition("Choice", "");
      MT584.U0011U000E.Mandatory = false;
      MT584.U0011U000E.Multiple = true;
      MT584.U0012U000E = new SwiftTagDefinition("Account_C1c1_97A", "Account");
      MT584.U0012U000E.TagName = ":97A::";
      MT584.U0012U000E.Multiple = true;
      MT584.U0013U000E = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0012U000E.Elements.Add((SwiftDefinitionElement) MT584.U0013U000E);
      MT584.U0014U000E = new SwiftTagSubItemDefinition("AccountNumber", "Account Number");
      MT584.U0012U000E.Elements.Add((SwiftDefinitionElement) MT584.U0014U000E);
      MT584.U0011U000E.Elements.Add((SwiftDefinitionElement) MT584.U0012U000E);
      MT584.U0015U000E = new SwiftTagDefinition("Account_C1c1_97B", "Account");
      MT584.U0015U000E.TagName = ":97B::";
      MT584.U0015U000E.Multiple = true;
      MT584.U0016U000E = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0015U000E.Elements.Add((SwiftDefinitionElement) MT584.U0016U000E);
      MT584.U0017U000E = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT584.U0015U000E.Elements.Add((SwiftDefinitionElement) MT584.U0017U000E);
      MT584.U0018U000E = new SwiftTagSubItemDefinition("AccountTypeCode", "Account Type Code");
      MT584.U0015U000E.Elements.Add((SwiftDefinitionElement) MT584.U0018U000E);
      MT584.U0019U000E = new SwiftTagSubItemDefinition("AccountNumber", "Account Number");
      MT584.U0015U000E.Elements.Add((SwiftDefinitionElement) MT584.U0019U000E);
      MT584.U0011U000E.Elements.Add((SwiftDefinitionElement) MT584.U0015U000E);
      MT584.U0094U0008.Elements.Add((SwiftDefinitionElement) MT584.U0011U000E);
      MT584.U001AU000E = new SwiftTagChoiceDefinition("Choice", "");
      MT584.U001AU000E.Mandatory = false;
      MT584.U001AU000E.Multiple = true;
      MT584.U001BU000E = new SwiftTagDefinition("Date_C1c1_98A", "Processing Date/Time");
      MT584.U001BU000E.TagName = ":98A::";
      MT584.U001CU000E = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U001BU000E.Elements.Add((SwiftDefinitionElement) MT584.U001CU000E);
      MT584.U001DU000E = new SwiftTagSubItemDefinition("Date", "Date");
      MT584.U001BU000E.Elements.Add((SwiftDefinitionElement) MT584.U001DU000E);
      MT584.U001AU000E.Elements.Add((SwiftDefinitionElement) MT584.U001BU000E);
      MT584.U001EU000E = new SwiftTagDefinition("DateTime_C1c1_98C", "Processing Date/Time");
      MT584.U001EU000E.TagName = ":98C::";
      MT584.U001FU000E = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U001EU000E.Elements.Add((SwiftDefinitionElement) MT584.U001FU000E);
      MT584.U007FU000E = new SwiftTagSubItemDefinition("DateTime", "Processing Date/Time");
      MT584.U0080U000E = new SwiftTagSubItemDefinition("Date", "Date");
      MT584.U007FU000E.Elements.Add((SwiftDefinitionElement) MT584.U0080U000E);
      MT584.U0081U000E = new SwiftTagSubItemDefinition("Time", "Time");
      MT584.U007FU000E.Elements.Add((SwiftDefinitionElement) MT584.U0081U000E);
      MT584.U001EU000E.Elements.Add((SwiftDefinitionElement) MT584.U007FU000E);
      MT584.U001AU000E.Elements.Add((SwiftDefinitionElement) MT584.U001EU000E);
      MT584.U0094U0008.Elements.Add((SwiftDefinitionElement) MT584.U001AU000E);
      MT584.U0082U000E = new SwiftTagDefinition("Reference_C1c1_20C", "Processing Reference");
      MT584.U0082U000E.TagName = ":20C::";
      MT584.U0082U000E.Mandatory = false;
      MT584.U0083U000E = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0082U000E.Elements.Add((SwiftDefinitionElement) MT584.U0083U000E);
      MT584.U0084U000E = new SwiftTagSubItemDefinition("Reference", "Reference");
      MT584.U0082U000E.Elements.Add((SwiftDefinitionElement) MT584.U0084U000E);
      MT584.U0094U0008.Elements.Add((SwiftDefinitionElement) MT584.U0082U000E);
      MT584.U0086U000E = new SwiftTagChoiceDefinition("Choice", "");
      MT584.U0086U000E.Mandatory = false;
      MT584.U0086U000E.Multiple = true;
      MT584.U0087U000E = new SwiftTagDefinition("Narrative_C1c1_70C", "Narrative");
      MT584.U0087U000E.TagName = ":70C::";
      MT584.U0087U000E.Multiple = true;
      MT584.U0088U000E = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0087U000E.Elements.Add((SwiftDefinitionElement) MT584.U0088U000E);
      MT584.U0089U000E = new SwiftTagSubItemDefinition("Narrative", "Narrative");
      MT584.U0087U000E.Elements.Add((SwiftDefinitionElement) MT584.U0089U000E);
      MT584.U0086U000E.Elements.Add((SwiftDefinitionElement) MT584.U0087U000E);
      MT584.U008AU000E = new SwiftTagDefinition("Narrative_C1c1_70E", "Narrative");
      MT584.U008AU000E.TagName = ":70E::";
      MT584.U008AU000E.Mandatory = false;
      MT584.U008AU000E.Multiple = true;
      MT584.U008BU000E = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U008AU000E.Elements.Add((SwiftDefinitionElement) MT584.U008BU000E);
      MT584.U008CU000E = new SwiftTagSubItemDefinition("Narrative", "Narrative");
      MT584.U008AU000E.Elements.Add((SwiftDefinitionElement) MT584.U008CU000E);
      MT584.U0086U000E.Elements.Add((SwiftDefinitionElement) MT584.U008AU000E);
      MT584.U0094U0008.Elements.Add((SwiftDefinitionElement) MT584.U0086U000E);
      MT584.U008DU000E = new SwiftTagDefinition("Indicator_C1c1_22F", "Party Capacity Indicator");
      MT584.U008DU000E.TagName = ":22F::";
      MT584.U008DU000E.Mandatory = false;
      MT584.U008EU000E = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U008DU000E.Elements.Add((SwiftDefinitionElement) MT584.U008EU000E);
      MT584.U008FU000E = new SwiftTagSubItemDefinition("DataSource", "Data Source");
      MT584.U008DU000E.Elements.Add((SwiftDefinitionElement) MT584.U008FU000E);
      MT584.U0090U000E = new SwiftTagSubItemDefinition("Indicator", "Indicator");
      MT584.U008DU000E.Elements.Add((SwiftDefinitionElement) MT584.U0090U000E);
      MT584.U0094U0008.Elements.Add((SwiftDefinitionElement) MT584.U008DU000E);
      MT584.U0091U000E = new SwiftTagDefinition("EndOfBlock_C1c1_16S", "End Of Block");
      MT584.U0091U000E.TagName = ":16S:CONFPRTY";
      MT584.U0092U000E = new SwiftTagSubItemDefinition("EndOfBlock", "End of Block");
      MT584.U0092U000E.Mandatory = false;
      MT584.U0091U000E.Elements.Add((SwiftDefinitionElement) MT584.U0092U000E);
      MT584.U0094U0008.Elements.Add((SwiftDefinitionElement) MT584.U0091U000E);
      MT584.U0011U0008.Elements.Add((SwiftDefinitionElement) MT584.U0094U0008);
      MT584.U0093U000E = new SwiftTagSequenceDefinition("SequenceC1c2", "Amounts");
      MT584.U0093U000E.Mandatory = false;
      MT584.U0093U000E.Multiple = true;
      MT584.U0094U000E = new SwiftTagDefinition("StartOfBlock_C1c2_16R", "Start Of Block");
      MT584.U0094U000E.TagName = ":16R:AMT";
      MT584.U0095U000E = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT584.U0095U000E.Mandatory = false;
      MT584.U0094U000E.Elements.Add((SwiftDefinitionElement) MT584.U0095U000E);
      MT584.U0093U000E.Elements.Add((SwiftDefinitionElement) MT584.U0094U000E);
      MT584.U0096U000E = new SwiftTagDefinition("Amount_C1c2_19A", "Amount");
      MT584.U0096U000E.TagName = ":19A::";
      MT584.U0096U000E.Multiple = true;
      MT584.U0097U000E = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0096U000E.Elements.Add((SwiftDefinitionElement) MT584.U0097U000E);
      MT584.U0098U000E = new SwiftTagSubItemDefinition("SignCodeAmount", "Sign, Currency Code, Amount");
      MT584.U0096U000E.Elements.Add((SwiftDefinitionElement) MT584.U0098U000E);
      MT584.U0093U000E.Elements.Add((SwiftDefinitionElement) MT584.U0096U000E);
      MT584.U0099U000E = new SwiftTagChoiceDefinition("Choice", "");
      MT584.U0099U000E.Mandatory = false;
      MT584.U0099U000E.Multiple = true;
      MT584.U009AU000E = new SwiftTagDefinition("Date_C1c2_98A", "Value Date");
      MT584.U009AU000E.TagName = ":98A::";
      MT584.U009BU000E = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U009AU000E.Elements.Add((SwiftDefinitionElement) MT584.U009BU000E);
      MT584.U009CU000E = new SwiftTagSubItemDefinition("Date", "Date");
      MT584.U009AU000E.Elements.Add((SwiftDefinitionElement) MT584.U009CU000E);
      MT584.U0099U000E.Elements.Add((SwiftDefinitionElement) MT584.U009AU000E);
      MT584.U009DU000E = new SwiftTagDefinition("DateTime_C1c2_98C", "Value Date");
      MT584.U009DU000E.TagName = ":98C::";
      MT584.U009EU000E = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U009DU000E.Elements.Add((SwiftDefinitionElement) MT584.U009EU000E);
      MT584.U009FU000E = new SwiftTagSubItemDefinition("DateTime", "Value Date");
      MT584.U0001U000F = new SwiftTagSubItemDefinition("Date", "Date");
      MT584.U009FU000E.Elements.Add((SwiftDefinitionElement) MT584.U0001U000F);
      MT584.U0002U000F = new SwiftTagSubItemDefinition("Time", "Time");
      MT584.U009FU000E.Elements.Add((SwiftDefinitionElement) MT584.U0002U000F);
      MT584.U009DU000E.Elements.Add((SwiftDefinitionElement) MT584.U009FU000E);
      MT584.U0099U000E.Elements.Add((SwiftDefinitionElement) MT584.U009DU000E);
      MT584.U0093U000E.Elements.Add((SwiftDefinitionElement) MT584.U0099U000E);
      MT584.U0003U000F = new SwiftTagDefinition("Rate_C1c2_92B", "Exchange Rate");
      MT584.U0003U000F.TagName = ":92B::";
      MT584.U0003U000F.Mandatory = false;
      MT584.U0004U000F = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0003U000F.Elements.Add((SwiftDefinitionElement) MT584.U0004U000F);
      MT584.U0005U000F = new SwiftTagSubItemDefinition("Rate", "Rate");
      MT584.U0006U000F = new SwiftTagSubItemDefinition("FirstCurrencyCode", "First Currency Code");
      MT584.U0005U000F.Elements.Add((SwiftDefinitionElement) MT584.U0006U000F);
      MT584.U0007U000F = new SwiftTagSubItemDefinition("SecondCurrencyCode", "Second Currency Code");
      MT584.U0005U000F.Elements.Add((SwiftDefinitionElement) MT584.U0007U000F);
      MT584.U0008U000F = new SwiftTagSubItemDefinition("Rate_1", "Rate");
      MT584.U0005U000F.Elements.Add((SwiftDefinitionElement) MT584.U0008U000F);
      MT584.U0003U000F.Elements.Add((SwiftDefinitionElement) MT584.U0005U000F);
      MT584.U0093U000E.Elements.Add((SwiftDefinitionElement) MT584.U0003U000F);
      MT584.U000EU000F = new SwiftTagDefinition("EndOfBlock_C1c2_16S", "End Of Block");
      MT584.U000EU000F.TagName = ":16S:AMT";
      MT584.U000FU000F = new SwiftTagSubItemDefinition("EndOfBlock", "End of Block");
      MT584.U000FU000F.Mandatory = false;
      MT584.U000EU000F.Elements.Add((SwiftDefinitionElement) MT584.U000FU000F);
      MT584.U0093U000E.Elements.Add((SwiftDefinitionElement) MT584.U000EU000F);
      MT584.U0011U0008.Elements.Add((SwiftDefinitionElement) MT584.U0093U000E);
      MT584.U0010U000F = new SwiftTagDefinition("EndOfBlock_C1c_16S", "End Of Block");
      MT584.U0010U000F.TagName = ":16S:TRADET";
      MT584.U0011U000F = new SwiftTagSubItemDefinition("EndOfBlock", "End of Block");
      MT584.U0011U000F.Mandatory = false;
      MT584.U0010U000F.Elements.Add((SwiftDefinitionElement) MT584.U0011U000F);
      MT584.U0011U0008.Elements.Add((SwiftDefinitionElement) MT584.U0010U000F);
      MT584.U0086U0006.Elements.Add((SwiftDefinitionElement) MT584.U0011U0008);
      MT584.U0012U000F = new SwiftTagDefinition("EndOfBlock_C1_16S", "End Of Block");
      MT584.U0012U000F.TagName = ":16S:FIN";
      MT584.U0013U000F = new SwiftTagSubItemDefinition("EndOfBlock", "End of Block");
      MT584.U0013U000F.Mandatory = false;
      MT584.U0012U000F.Elements.Add((SwiftDefinitionElement) MT584.U0013U000F);
      MT584.U0086U0006.Elements.Add((SwiftDefinitionElement) MT584.U0012U000F);
      MT584.U0018U0006.Elements.Add((SwiftDefinitionElement) MT584.U0086U0006);
      MT584.U0014U000F = new SwiftTagDefinition("EndOfBlock_C_16S", "End Of Block");
      MT584.U0014U000F.TagName = ":16S:STAT";
      MT584.U0015U000F = new SwiftTagSubItemDefinition("EndOfBlock", "End of Block");
      MT584.U0015U000F.Mandatory = false;
      MT584.U0014U000F.Elements.Add((SwiftDefinitionElement) MT584.U0015U000F);
      MT584.U0018U0006.Elements.Add((SwiftDefinitionElement) MT584.U0014U000F);
      MT584.MessageDefinition.Elements.Add((SwiftDefinitionElement) MT584.U0018U0006);
      MT584.U0016U000F = new SwiftTagSequenceDefinition("SequenceD", "Additional Information");
      MT584.U0016U000F.Mandatory = false;
      MT584.U0017U000F = new SwiftTagDefinition("StartOfBlock_D_16R", "Start of Block");
      MT584.U0017U000F.TagName = ":16R:ADDINFO";
      MT584.U0018U000F = new SwiftTagSubItemDefinition("StartOfBlock", "Start of Block ");
      MT584.U0018U000F.Mandatory = false;
      MT584.U0017U000F.Elements.Add((SwiftDefinitionElement) MT584.U0018U000F);
      MT584.U0016U000F.Elements.Add((SwiftDefinitionElement) MT584.U0017U000F);
      MT584.U0019U000F = new SwiftTagChoiceDefinition("Choice", "");
      MT584.U0019U000F.Mandatory = false;
      MT584.U0019U000F.Multiple = true;
      MT584.U001AU000F = new SwiftTagDefinition("Party_D_95P", "Party");
      MT584.U001AU000F.TagName = ":95P::";
      MT584.U001AU000F.Multiple = true;
      MT584.U001BU000F = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U001AU000F.Elements.Add((SwiftDefinitionElement) MT584.U001BU000F);
      MT584.U001CU000F = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT584.U001AU000F.Elements.Add((SwiftDefinitionElement) MT584.U001CU000F);
      MT584.U0019U000F.Elements.Add((SwiftDefinitionElement) MT584.U001AU000F);
      MT584.U001DU000F = new SwiftTagDefinition("Party_D_95R", "Party");
      MT584.U001DU000F.TagName = ":95R::";
      MT584.U001DU000F.Multiple = true;
      MT584.U001EU000F = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U001DU000F.Elements.Add((SwiftDefinitionElement) MT584.U001EU000F);
      MT584.U001FU000F = new SwiftTagSubItemDefinition("DataSourceScheme", "Data Source Scheme");
      MT584.U001DU000F.Elements.Add((SwiftDefinitionElement) MT584.U001FU000F);
      MT584.U007FU000F = new SwiftTagSubItemDefinition("ProprietaryCode", "Proprietary Code");
      MT584.U001DU000F.Elements.Add((SwiftDefinitionElement) MT584.U007FU000F);
      MT584.U0019U000F.Elements.Add((SwiftDefinitionElement) MT584.U001DU000F);
      MT584.U0080U000F = new SwiftTagDefinition("Party_D_95Q", "Party");
      MT584.U0080U000F.TagName = ":95Q::";
      MT584.U0080U000F.Multiple = true;
      MT584.U0081U000F = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT584.U0080U000F.Elements.Add((SwiftDefinitionElement) MT584.U0081U000F);
      MT584.U0082U000F = new SwiftTagSubItemDefinition("NameAndAddress_95Q", "Name And Address");
      MT584.U0080U000F.Elements.Add((SwiftDefinitionElement) MT584.U0082U000F);
      MT584.U0019U000F.Elements.Add((SwiftDefinitionElement) MT584.U0080U000F);
      MT584.U0016U000F.Elements.Add((SwiftDefinitionElement) MT584.U0019U000F);
      MT584.U0083U000F = new SwiftTagDefinition("EndOfBlock_D_16S", "End of Block");
      MT584.U0083U000F.TagName = ":16S:ADDINFO";
      MT584.U0084U000F = new SwiftTagSubItemDefinition("EndOfBlock", "End of Block");
      MT584.U0084U000F.Mandatory = false;
      MT584.U0083U000F.Elements.Add((SwiftDefinitionElement) MT584.U0084U000F);
      MT584.U0016U000F.Elements.Add((SwiftDefinitionElement) MT584.U0083U000F);
      MT584.MessageDefinition.Elements.Add((SwiftDefinitionElement) MT584.U0016U000F);
    }

    public class SequenceAClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT584.U0002;
        }
      }

      [Description("Start Of Block")]
      public Tag16R StartOfBlock_A_16R
      {
        get
        {
          return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0003);
        }
      }

      [Description("Start Of Block")]
      public Tag16R Tag16R_StartOfBlock_A
      {
        get
        {
          return this.StartOfBlock_A_16R;
        }
      }

      [Description("Page Number/Continuation Indicator")]
      public MT584.SequenceAClass.Tag28E PageNumberContinuationIndicator_A_28E
      {
        get
        {
          return new MT584.SequenceAClass.Tag28E((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0005);
        }
      }

      [Description("Page Number/Continuation Indicator")]
      public MT584.SequenceAClass.Tag28E Tag28E_PageNumberContinuationIndicator_A
      {
        get
        {
          return this.PageNumberContinuationIndicator_A_28E;
        }
      }

      [Description("Statement Number")]
      public Tag13A NumberIdentification_A_13A
      {
        get
        {
          return new Tag13A((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U000E);
        }
      }

      [Description("Statement Number")]
      public Tag13A Tag13A_NumberIdentification_A
      {
        get
        {
          return this.NumberIdentification_A_13A;
        }
      }

      [Description("Statement Number")]
      public Tag13J NumberIdentification_A_13J
      {
        get
        {
          return new Tag13J((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0011);
        }
      }

      [Description("Statement Number")]
      public Tag13J Tag13J_NumberIdentification_A
      {
        get
        {
          return this.NumberIdentification_A_13J;
        }
      }

      [Description("Sender's Reference")]
      public Tag20C Reference_A_20C
      {
        get
        {
          return new Tag20C((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0014);
        }
      }

      [Description("Sender's Reference")]
      public Tag20C Tag20C_Reference_A
      {
        get
        {
          return this.Reference_A_20C;
        }
      }

      [Description("Function of the Message")]
      public Tag23G FunctionOfTheMessage_A_23G
      {
        get
        {
          return new Tag23G((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0017);
        }
      }

      [Description("Function of the Message")]
      public Tag23G Tag23G_FunctionOfTheMessage_A
      {
        get
        {
          return this.FunctionOfTheMessage_A_23G;
        }
      }

      [Description("Date/Time")]
      public Tag98A[] Date_A_98A
      {
        get
        {
          int index = -1;
          List<Tag98A> list = new List<Tag98A>();
          int count;
          do
          {
            ++index;
            Tag98A tag98A = new Tag98A((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U001C);
            count = this.ListTags((SwiftElement) tag98A).Count;
            if (count > 0)
              list.Add(tag98A);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Date/Time")]
      public Tag98A[] Tag98A_Date_A
      {
        get
        {
          return this.Date_A_98A;
        }
      }

      [Description("Date/Time")]
      public Tag98C[] DateTime_A_98C
      {
        get
        {
          int index = -1;
          List<Tag98C> list = new List<Tag98C>();
          int count;
          do
          {
            ++index;
            Tag98C tag98C = new Tag98C((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U001F);
            count = this.ListTags((SwiftElement) tag98C).Count;
            if (count > 0)
              list.Add(tag98C);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Date/Time")]
      public Tag98C[] Tag98C_DateTime_A
      {
        get
        {
          return this.DateTime_A_98C;
        }
      }

      [Description("Trade Date/Time")]
      public Tag98E[] DateTime_A_98E
      {
        get
        {
          int index = -1;
          List<Tag98E> list = new List<Tag98E>();
          int count;
          do
          {
            ++index;
            Tag98E tag98E = new Tag98E((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0083);
            count = this.ListTags((SwiftElement) tag98E).Count;
            if (count > 0)
              list.Add(tag98E);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Trade Date/Time")]
      public Tag98E[] Tag98E_DateTime_A
      {
        get
        {
          return this.DateTime_A_98E;
        }
      }

      [Description("Linkages")]
      public MT584.SequenceAClass.SequenceA1Class[] SequenceA1
      {
        get
        {
          int index = -1;
          List<MT584.SequenceAClass.SequenceA1Class> list = new List<MT584.SequenceAClass.SequenceA1Class>();
          int count;
          do
          {
            ++index;
            MT584.SequenceAClass.SequenceA1Class sequenceA1Class = new MT584.SequenceAClass.SequenceA1Class((SwiftElement) this, index, false);
            count = this.ListTags((SwiftElement) sequenceA1Class).Count;
            if (count > 0)
              list.Add(sequenceA1Class);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Account Owner")]
      public MT584.SequenceAClass.Tag95P Party_A_95P
      {
        get
        {
          return new MT584.SequenceAClass.Tag95P((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U009F);
        }
      }

      [Description("Account Owner")]
      public MT584.SequenceAClass.Tag95P Tag95P_Party_A
      {
        get
        {
          return this.Party_A_95P;
        }
      }

      [Description("Account Owner")]
      public MT584.SequenceAClass.Tag95R Party_A_95R
      {
        get
        {
          return new MT584.SequenceAClass.Tag95R((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0003U0002);
        }
      }

      [Description("Account Owner")]
      public MT584.SequenceAClass.Tag95R Tag95R_Party_A
      {
        get
        {
          return this.Party_A_95R;
        }
      }

      [Description("Safekeeping Account")]
      public Tag97A Account_A_97A
      {
        get
        {
          return new Tag97A((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0008U0002);
        }
      }

      [Description("Safekeeping Account")]
      public Tag97A Tag97A_Account_A
      {
        get
        {
          return this.Account_A_97A;
        }
      }

      [Description("Safekeeping Account")]
      public Tag97B Account_A_97B
      {
        get
        {
          return new Tag97B((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0010U0002);
        }
      }

      [Description("Safekeeping Account")]
      public Tag97B Tag97B_Account_A
      {
        get
        {
          return this.Account_A_97B;
        }
      }

      [Description("Activity Flag")]
      public Tag17B Flag_A_17B
      {
        get
        {
          return new Tag17B((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0015U0002);
        }
      }

      [Description("Activity Flag")]
      public Tag17B Tag17B_Flag_A
      {
        get
        {
          return this.Flag_A_17B;
        }
      }

      [Description("End Of Block")]
      public Tag16S EndOfBlock_A_16S
      {
        get
        {
          return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0018U0002);
        }
      }

      [Description("End Of Block")]
      public Tag16S Tag16S_EndOfBlock_A
      {
        get
        {
          return this.EndOfBlock_A_16S;
        }
      }

      internal SequenceAClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }

      public Tag98A AddDate_A_98A()
      {
        return new Tag98A((SwiftElement) this, this.Date_A_98A.Length, (SwiftDefinitionElement) MT584.U001C)
        {
          Value = string.Empty
        };
      }

      public void RemoveDate_A_98A(Tag98A tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public Tag98C AddDateTime_A_98C()
      {
        return new Tag98C((SwiftElement) this, this.DateTime_A_98C.Length, (SwiftDefinitionElement) MT584.U001F)
        {
          Value = string.Empty
        };
      }

      public void RemoveDateTime_A_98C(Tag98C tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public Tag98E AddDateTime_A_98E()
      {
        return new Tag98E((SwiftElement) this, this.DateTime_A_98E.Length, (SwiftDefinitionElement) MT584.U0083)
        {
          Value = string.Empty
        };
      }

      public void RemoveDateTime_A_98E(Tag98E tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public MT584.SequenceAClass.SequenceA1Class AddSequenceA1()
      {
        return new MT584.SequenceAClass.SequenceA1Class((SwiftElement) this, this.SequenceA1.Length, true);
      }

      public void RemoveSequenceA1(MT584.SequenceAClass.SequenceA1Class sequence)
      {
        foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
          this.RemoveTag(tag);
      }

      public class Tag28E : SwiftTagWrapper
      {
        public string Value
        {
          get
          {
            return this.GetValue();
          }
          set
          {
            this.SetValue("28E", value);
          }
        }

        internal Tag28E(SwiftElement parent, int index, SwiftDefinitionElement definition)
          : base(parent, index, definition)
        {
        }
      }

      public class SequenceA1Class : SwiftTagSequence
      {
        internal override SwiftDefinitionElement Definition
        {
          get
          {
            return (SwiftDefinitionElement) MT584.U008E;
          }
        }

        [Description("Start Of Block")]
        public Tag16R StartOfBlock_A1_16R
        {
          get
          {
            return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U008F);
          }
        }

        [Description("Start Of Block")]
        public Tag16R Tag16R_StartOfBlock_A1
        {
          get
          {
            return this.StartOfBlock_A1_16R;
          }
        }

        [Description("Linked Message")]
        public Tag13A NumberIdentification_A1_13A
        {
          get
          {
            return new Tag13A((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0092);
          }
        }

        [Description("Linked Message")]
        public Tag13A Tag13A_NumberIdentification_A1
        {
          get
          {
            return this.NumberIdentification_A1_13A;
          }
        }

        [Description("Linked Message")]
        public Tag13B NumberIdentification_A1_13B
        {
          get
          {
            return new Tag13B((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0095);
          }
        }

        [Description("Linked Message")]
        public Tag13B Tag13B_NumberIdentification_A1
        {
          get
          {
            return this.NumberIdentification_A1_13B;
          }
        }

        [Description("Reference")]
        public Tag20C Reference_A1_20C
        {
          get
          {
            return new Tag20C((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0099);
          }
        }

        [Description("Reference")]
        public Tag20C Tag20C_Reference_A1
        {
          get
          {
            return this.Reference_A1_20C;
          }
        }

        [Description("End Of Block")]
        public Tag16S EndOfBlock_A1_16S
        {
          get
          {
            return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U009C);
          }
        }

        [Description("End Of Block")]
        public Tag16S Tag16S_EndOfBlock_A1
        {
          get
          {
            return this.EndOfBlock_A1_16S;
          }
        }

        internal SequenceA1Class(SwiftElement parent, int index, bool createTags)
          : base(parent, index, createTags)
        {
        }
      }

      public class Tag95P : SwiftTagWrapper
      {
        public string Value
        {
          get
          {
            return this.GetValue();
          }
          set
          {
            this.SetValue("95P", value);
          }
        }

        internal Tag95P(SwiftElement parent, int index, SwiftDefinitionElement definition)
          : base(parent, index, definition)
        {
        }
      }

      public class Tag95R : SwiftTagWrapper
      {
        public string Value
        {
          get
          {
            return this.GetValue();
          }
          set
          {
            this.SetValue("95R", value);
          }
        }

        internal Tag95R(SwiftElement parent, int index, SwiftDefinitionElement definition)
          : base(parent, index, definition)
        {
        }
      }
    }

    public class SequenceBClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT584.U001AU0002;
        }
      }

      [Description("Start Of Block")]
      public Tag16R StartOfBlock_B_16R
      {
        get
        {
          return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U001BU0002);
        }
      }

      [Description("Start Of Block")]
      public Tag16R Tag16R_StartOfBlock_B
      {
        get
        {
          return this.StartOfBlock_B_16R;
        }
      }

      [Description("Identification of the Financial Instrument")]
      public Tag35B IdentificationOfFinancialInstrument_B_35B
      {
        get
        {
          return new Tag35B((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U001DU0002);
        }
      }

      [Description("Identification of the Financial Instrument")]
      public Tag35B Tag35B_IdentificationOfFinancialInstrument_B
      {
        get
        {
          return this.IdentificationOfFinancialInstrument_B_35B;
        }
      }

      [Description("Financial Instrument Attributes")]
      public MT584.SequenceBClass.SequenceB1Class SequenceB1
      {
        get
        {
          MT584.SequenceBClass.SequenceB1Class sequenceB1Class = new MT584.SequenceBClass.SequenceB1Class((SwiftElement) this, 0, false);
          if (this.ListTags((SwiftElement) sequenceB1Class).Count > 0)
            return sequenceB1Class;
          else
            return (MT584.SequenceBClass.SequenceB1Class) null;
        }
      }

      [Description("Status")]
      public MT584.SequenceBClass.SequenceB2Class[] SequenceB2
      {
        get
        {
          int index = -1;
          List<MT584.SequenceBClass.SequenceB2Class> list = new List<MT584.SequenceBClass.SequenceB2Class>();
          int count;
          do
          {
            ++index;
            MT584.SequenceBClass.SequenceB2Class sequenceB2Class = new MT584.SequenceBClass.SequenceB2Class((SwiftElement) this, index, false);
            count = this.ListTags((SwiftElement) sequenceB2Class).Count;
            if (count > 0)
              list.Add(sequenceB2Class);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("End Of Block")]
      public Tag16S EndOfBlock_B_16S
      {
        get
        {
          return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0016U0006);
        }
      }

      [Description("End Of Block")]
      public Tag16S Tag16S_EndOfBlock_B
      {
        get
        {
          return this.EndOfBlock_B_16S;
        }
      }

      internal SequenceBClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }

      public MT584.SequenceBClass.SequenceB1Class AddSequenceB1()
      {
        return this.SequenceB1 ?? new MT584.SequenceBClass.SequenceB1Class((SwiftElement) this, 0, true);
      }

      public void RemoveSequenceB1(MT584.SequenceBClass.SequenceB1Class sequence)
      {
        foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
          this.RemoveTag(tag);
      }

      public MT584.SequenceBClass.SequenceB2Class AddSequenceB2()
      {
        return new MT584.SequenceBClass.SequenceB2Class((SwiftElement) this, this.SequenceB2.Length, true);
      }

      public void RemoveSequenceB2(MT584.SequenceBClass.SequenceB2Class sequence)
      {
        foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
          this.RemoveTag(tag);
      }

      public class SequenceB1Class : SwiftTagSequence
      {
        internal override SwiftDefinitionElement Definition
        {
          get
          {
            return (SwiftDefinitionElement) MT584.U0080U0002;
          }
        }

        [Description("Start Of Block")]
        public Tag16R StartOfBlock_B1_16R
        {
          get
          {
            return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0081U0002);
          }
        }

        [Description("Start Of Block")]
        public Tag16R Tag16R_StartOfBlock_B1
        {
          get
          {
            return this.StartOfBlock_B1_16R;
          }
        }

        [Description("Place of Trade")]
        public Tag94B Place_B1_94B
        {
          get
          {
            return new Tag94B((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0083U0002);
          }
        }

        [Description("Place of Trade")]
        public Tag94B Tag94B_Place_B1
        {
          get
          {
            return this.Place_B1_94B;
          }
        }

        [Description("Indicator")]
        public Tag22F[] Indicator_B1_22F
        {
          get
          {
            int index = -1;
            List<Tag22F> list = new List<Tag22F>();
            int count;
            do
            {
              ++index;
              Tag22F tag22F = new Tag22F((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U008AU0002);
              count = this.ListTags((SwiftElement) tag22F).Count;
              if (count > 0)
                list.Add(tag22F);
            }
            while (count > 0);
            return list.ToArray();
          }
        }

        [Description("Indicator")]
        public Tag22F[] Tag22F_Indicator_B1
        {
          get
          {
            return this.Indicator_B1_22F;
          }
        }

        [Description("Type of Financial Instrument")]
        public Tag12A[] TypeOfFinancialInstrument_B1_12A
        {
          get
          {
            int index = -1;
            List<Tag12A> list = new List<Tag12A>();
            int count;
            do
            {
              ++index;
              Tag12A tag12A = new Tag12A((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U008FU0002);
              count = this.ListTags((SwiftElement) tag12A).Count;
              if (count > 0)
                list.Add(tag12A);
            }
            while (count > 0);
            return list.ToArray();
          }
        }

        [Description("Type of Financial Instrument")]
        public Tag12A[] Tag12A_TypeOfFinancialInstrument_B1
        {
          get
          {
            return this.TypeOfFinancialInstrument_B1_12A;
          }
        }

        [Description("Type of Financial Instrument")]
        public Tag12B[] TypeOfFinancialInstrument_B1_12B
        {
          get
          {
            int index = -1;
            List<Tag12B> list = new List<Tag12B>();
            int count;
            do
            {
              ++index;
              Tag12B tag12B = new Tag12B((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0093U0002);
              count = this.ListTags((SwiftElement) tag12B).Count;
              if (count > 0)
                list.Add(tag12B);
            }
            while (count > 0);
            return list.ToArray();
          }
        }

        [Description("Type of Financial Instrument")]
        public Tag12B[] Tag12B_TypeOfFinancialInstrument_B1
        {
          get
          {
            return this.TypeOfFinancialInstrument_B1_12B;
          }
        }

        [Description("Type of Financial Instrument")]
        public Tag12C[] TypeOfFinancialInstrument_B1_12C
        {
          get
          {
            int index = -1;
            List<Tag12C> list = new List<Tag12C>();
            int count;
            do
            {
              ++index;
              Tag12C tag12C = new Tag12C((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0097U0002);
              count = this.ListTags((SwiftElement) tag12C).Count;
              if (count > 0)
                list.Add(tag12C);
            }
            while (count > 0);
            return list.ToArray();
          }
        }

        [Description("Type of Financial Instrument")]
        public Tag12C[] Tag12C_TypeOfFinancialInstrument_B1
        {
          get
          {
            return this.TypeOfFinancialInstrument_B1_12C;
          }
        }

        [Description("Currency of Denomination")]
        public Tag11A Currency_B1_11A
        {
          get
          {
            return new Tag11A((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U009AU0002);
          }
        }

        [Description("Currency of Denomination")]
        public Tag11A Tag11A_Currency_B1
        {
          get
          {
            return this.Currency_B1_11A;
          }
        }

        [Description("Date/Time")]
        public Tag98A[] Date_B1_98A
        {
          get
          {
            int index = -1;
            List<Tag98A> list = new List<Tag98A>();
            int count;
            do
            {
              ++index;
              Tag98A tag98A = new Tag98A((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U009DU0002);
              count = this.ListTags((SwiftElement) tag98A).Count;
              if (count > 0)
                list.Add(tag98A);
            }
            while (count > 0);
            return list.ToArray();
          }
        }

        [Description("Date/Time")]
        public Tag98A[] Tag98A_Date_B1
        {
          get
          {
            return this.Date_B1_98A;
          }
        }

        [Description("Rate")]
        public Tag92A[] Rate_B1_92A
        {
          get
          {
            int index = -1;
            List<Tag92A> list = new List<Tag92A>();
            int count;
            do
            {
              ++index;
              Tag92A tag92A = new Tag92A((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0001U0003);
              count = this.ListTags((SwiftElement) tag92A).Count;
              if (count > 0)
                list.Add(tag92A);
            }
            while (count > 0);
            return list.ToArray();
          }
        }

        [Description("Rate")]
        public Tag92A[] Tag92A_Rate_B1
        {
          get
          {
            return this.Rate_B1_92A;
          }
        }

        [Description("Number Identification")]
        public Tag13A[] NumberIdentification_B1_13A
        {
          get
          {
            int index = -1;
            List<Tag13A> list = new List<Tag13A>();
            int count;
            do
            {
              ++index;
              Tag13A tag13A = new Tag13A((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0005U0003);
              count = this.ListTags((SwiftElement) tag13A).Count;
              if (count > 0)
                list.Add(tag13A);
            }
            while (count > 0);
            return list.ToArray();
          }
        }

        [Description("Number Identification")]
        public Tag13A[] Tag13A_NumberIdentification_B1
        {
          get
          {
            return this.NumberIdentification_B1_13A;
          }
        }

        [Description("Number Identification")]
        public Tag13B[] NumberIdentification_B1_13B
        {
          get
          {
            int index = -1;
            List<Tag13B> list = new List<Tag13B>();
            int count;
            do
            {
              ++index;
              Tag13B tag13B = new Tag13B((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0008U0003);
              count = this.ListTags((SwiftElement) tag13B).Count;
              if (count > 0)
                list.Add(tag13B);
            }
            while (count > 0);
            return list.ToArray();
          }
        }

        [Description("Number Identification")]
        public Tag13B[] Tag13B_NumberIdentification_B1
        {
          get
          {
            return this.NumberIdentification_B1_13B;
          }
        }

        [Description("Flag")]
        public Tag17B[] Flag_B1_17B
        {
          get
          {
            int index = -1;
            List<Tag17B> list = new List<Tag17B>();
            int count;
            do
            {
              ++index;
              Tag17B tag17B = new Tag17B((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0011U0003);
              count = this.ListTags((SwiftElement) tag17B).Count;
              if (count > 0)
                list.Add(tag17B);
            }
            while (count > 0);
            return list.ToArray();
          }
        }

        [Description("Flag")]
        public Tag17B[] Tag17B_Flag_B1
        {
          get
          {
            return this.Flag_B1_17B;
          }
        }

        [Description("Price")]
        public Tag90A[] Price_B1_90A
        {
          get
          {
            int index = -1;
            List<Tag90A> list = new List<Tag90A>();
            int count;
            do
            {
              ++index;
              Tag90A tag90A = new Tag90A((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0015U0003);
              count = this.ListTags((SwiftElement) tag90A).Count;
              if (count > 0)
                list.Add(tag90A);
            }
            while (count > 0);
            return list.ToArray();
          }
        }

        [Description("Price")]
        public Tag90A[] Tag90A_Price_B1
        {
          get
          {
            return this.Price_B1_90A;
          }
        }

        [Description("Price")]
        public Tag90B[] Price_B1_90B
        {
          get
          {
            int index = -1;
            List<Tag90B> list = new List<Tag90B>();
            int count;
            do
            {
              ++index;
              Tag90B tag90B = new Tag90B((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U001AU0003);
              count = this.ListTags((SwiftElement) tag90B).Count;
              if (count > 0)
                list.Add(tag90B);
            }
            while (count > 0);
            return list.ToArray();
          }
        }

        [Description("Price")]
        public Tag90B[] Tag90B_Price_B1
        {
          get
          {
            return this.Price_B1_90B;
          }
        }

        [Description("Quantity of Financial Instrument")]
        public Tag36B[] QuantityOfFinancialInstrument_B1_36B
        {
          get
          {
            int index = -1;
            List<Tag36B> list = new List<Tag36B>();
            int count;
            do
            {
              ++index;
              Tag36B tag36B = new Tag36B((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0080U0003);
              count = this.ListTags((SwiftElement) tag36B).Count;
              if (count > 0)
                list.Add(tag36B);
            }
            while (count > 0);
            return list.ToArray();
          }
        }

        [Description("Quantity of Financial Instrument")]
        public Tag36B[] Tag36B_QuantityOfFinancialInstrument_B1
        {
          get
          {
            return this.QuantityOfFinancialInstrument_B1_36B;
          }
        }

        [Description("Identification of the Financial Instrument")]
        public Tag35B[] IdentificationOfFinancialInstrument_B1_35B
        {
          get
          {
            int index = -1;
            List<Tag35B> list = new List<Tag35B>();
            int count;
            do
            {
              ++index;
              Tag35B tag35B = new Tag35B((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0086U0003);
              count = this.ListTags((SwiftElement) tag35B).Count;
              if (count > 0)
                list.Add(tag35B);
            }
            while (count > 0);
            return list.ToArray();
          }
        }

        [Description("Identification of the Financial Instrument")]
        public Tag35B[] Tag35B_IdentificationOfFinancialInstrument_B1
        {
          get
          {
            return this.IdentificationOfFinancialInstrument_B1_35B;
          }
        }

        [Description("Financial Instrument Attribute Narrative")]
        public Tag70E Narrative_B1_70E
        {
          get
          {
            return new Tag70E((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U008AU0003);
          }
        }

        [Description("Financial Instrument Attribute Narrative")]
        public Tag70E Tag70E_Narrative_B1
        {
          get
          {
            return this.Narrative_B1_70E;
          }
        }

        [Description("End Of Block")]
        public Tag16S EndOfBlock_B1_16S
        {
          get
          {
            return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U008DU0003);
          }
        }

        [Description("End Of Block")]
        public Tag16S Tag16S_EndOfBlock_B1
        {
          get
          {
            return this.EndOfBlock_B1_16S;
          }
        }

        internal SequenceB1Class(SwiftElement parent, int index, bool createTags)
          : base(parent, index, createTags)
        {
        }

        public Tag22F AddIndicator_B1_22F()
        {
          return new Tag22F((SwiftElement) this, this.Indicator_B1_22F.Length, (SwiftDefinitionElement) MT584.U008AU0002)
          {
            Value = string.Empty
          };
        }

        public void RemoveIndicator_B1_22F(Tag22F tag)
        {
          this.RemoveTag(tag.GetTag());
        }

        public Tag12A AddTypeOfFinancialInstrument_B1_12A()
        {
          return new Tag12A((SwiftElement) this, this.TypeOfFinancialInstrument_B1_12A.Length, (SwiftDefinitionElement) MT584.U008FU0002)
          {
            Value = string.Empty
          };
        }

        public void RemoveTypeOfFinancialInstrument_B1_12A(Tag12A tag)
        {
          this.RemoveTag(tag.GetTag());
        }

        public Tag12B AddTypeOfFinancialInstrument_B1_12B()
        {
          return new Tag12B((SwiftElement) this, this.TypeOfFinancialInstrument_B1_12B.Length, (SwiftDefinitionElement) MT584.U0093U0002)
          {
            Value = string.Empty
          };
        }

        public void RemoveTypeOfFinancialInstrument_B1_12B(Tag12B tag)
        {
          this.RemoveTag(tag.GetTag());
        }

        public Tag12C AddTypeOfFinancialInstrument_B1_12C()
        {
          return new Tag12C((SwiftElement) this, this.TypeOfFinancialInstrument_B1_12C.Length, (SwiftDefinitionElement) MT584.U0097U0002)
          {
            Value = string.Empty
          };
        }

        public void RemoveTypeOfFinancialInstrument_B1_12C(Tag12C tag)
        {
          this.RemoveTag(tag.GetTag());
        }

        public Tag98A AddDate_B1_98A()
        {
          return new Tag98A((SwiftElement) this, this.Date_B1_98A.Length, (SwiftDefinitionElement) MT584.U009DU0002)
          {
            Value = string.Empty
          };
        }

        public void RemoveDate_B1_98A(Tag98A tag)
        {
          this.RemoveTag(tag.GetTag());
        }

        public Tag92A AddRate_B1_92A()
        {
          return new Tag92A((SwiftElement) this, this.Rate_B1_92A.Length, (SwiftDefinitionElement) MT584.U0001U0003)
          {
            Value = string.Empty
          };
        }

        public void RemoveRate_B1_92A(Tag92A tag)
        {
          this.RemoveTag(tag.GetTag());
        }

        public Tag13A AddNumberIdentification_B1_13A()
        {
          return new Tag13A((SwiftElement) this, this.NumberIdentification_B1_13A.Length, (SwiftDefinitionElement) MT584.U0005U0003)
          {
            Value = string.Empty
          };
        }

        public void RemoveNumberIdentification_B1_13A(Tag13A tag)
        {
          this.RemoveTag(tag.GetTag());
        }

        public Tag13B AddNumberIdentification_B1_13B()
        {
          return new Tag13B((SwiftElement) this, this.NumberIdentification_B1_13B.Length, (SwiftDefinitionElement) MT584.U0008U0003)
          {
            Value = string.Empty
          };
        }

        public void RemoveNumberIdentification_B1_13B(Tag13B tag)
        {
          this.RemoveTag(tag.GetTag());
        }

        public Tag17B AddFlag_B1_17B()
        {
          return new Tag17B((SwiftElement) this, this.Flag_B1_17B.Length, (SwiftDefinitionElement) MT584.U0011U0003)
          {
            Value = string.Empty
          };
        }

        public void RemoveFlag_B1_17B(Tag17B tag)
        {
          this.RemoveTag(tag.GetTag());
        }

        public Tag90A AddPrice_B1_90A()
        {
          return new Tag90A((SwiftElement) this, this.Price_B1_90A.Length, (SwiftDefinitionElement) MT584.U0015U0003)
          {
            Value = string.Empty
          };
        }

        public void RemovePrice_B1_90A(Tag90A tag)
        {
          this.RemoveTag(tag.GetTag());
        }

        public Tag90B AddPrice_B1_90B()
        {
          return new Tag90B((SwiftElement) this, this.Price_B1_90B.Length, (SwiftDefinitionElement) MT584.U001AU0003)
          {
            Value = string.Empty
          };
        }

        public void RemovePrice_B1_90B(Tag90B tag)
        {
          this.RemoveTag(tag.GetTag());
        }

        public Tag36B AddQuantityOfFinancialInstrument_B1_36B()
        {
          return new Tag36B((SwiftElement) this, this.QuantityOfFinancialInstrument_B1_36B.Length, (SwiftDefinitionElement) MT584.U0080U0003)
          {
            Value = string.Empty
          };
        }

        public void RemoveQuantityOfFinancialInstrument_B1_36B(Tag36B tag)
        {
          this.RemoveTag(tag.GetTag());
        }

        public Tag35B AddIdentificationOfFinancialInstrument_B1_35B()
        {
          return new Tag35B((SwiftElement) this, this.IdentificationOfFinancialInstrument_B1_35B.Length, (SwiftDefinitionElement) MT584.U0086U0003)
          {
            Value = string.Empty
          };
        }

        public void RemoveIdentificationOfFinancialInstrument_B1_35B(Tag35B tag)
        {
          this.RemoveTag(tag.GetTag());
        }
      }

      public class SequenceB2Class : SwiftTagSequence
      {
        internal override SwiftDefinitionElement Definition
        {
          get
          {
            return (SwiftDefinitionElement) MT584.U008FU0003;
          }
        }

        [Description("Start Of Block")]
        public Tag16R StartOfBlock_B2_16R
        {
          get
          {
            return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0090U0003);
          }
        }

        [Description("Start Of Block")]
        public Tag16R Tag16R_StartOfBlock_B2
        {
          get
          {
            return this.StartOfBlock_B2_16R;
          }
        }

        [Description("Master Reference")]
        public Tag20C Reference_B2_20C
        {
          get
          {
            return new Tag20C((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0092U0003);
          }
        }

        [Description("Master Reference")]
        public Tag20C Tag20C_Reference_B2
        {
          get
          {
            return this.Reference_B2_20C;
          }
        }

        [Description("Status Code")]
        public Tag25D StatusCode_B2_25D
        {
          get
          {
            return new Tag25D((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0095U0003);
          }
        }

        [Description("Status Code")]
        public Tag25D Tag25D_StatusCode_B2
        {
          get
          {
            return this.StatusCode_B2_25D;
          }
        }

        [Description("Reason Code")]
        public Tag24B ReasonCode_B2_24B
        {
          get
          {
            return new Tag24B((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0099U0003);
          }
        }

        [Description("Reason Code")]
        public Tag24B Tag24B_ReasonCode_B2
        {
          get
          {
            return this.ReasonCode_B2_24B;
          }
        }

        [Description("Linkages")]
        public MT584.SequenceBClass.SequenceB2Class.SequenceB2aClass[] SequenceB2a
        {
          get
          {
            int index = -1;
            List<MT584.SequenceBClass.SequenceB2Class.SequenceB2aClass> list = new List<MT584.SequenceBClass.SequenceB2Class.SequenceB2aClass>();
            int count;
            do
            {
              ++index;
              MT584.SequenceBClass.SequenceB2Class.SequenceB2aClass sequenceB2aClass = new MT584.SequenceBClass.SequenceB2Class.SequenceB2aClass((SwiftElement) this, index, false);
              count = this.ListTags((SwiftElement) sequenceB2aClass).Count;
              if (count > 0)
                list.Add(sequenceB2aClass);
            }
            while (count > 0);
            return list.ToArray();
          }
        }

        [Description("Trade Details")]
        public MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass[] SequenceB2b
        {
          get
          {
            int index = -1;
            List<MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass> list = new List<MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass>();
            int count;
            do
            {
              ++index;
              MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass sequenceB2bClass = new MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass((SwiftElement) this, index, false);
              count = this.ListTags((SwiftElement) sequenceB2bClass).Count;
              if (count > 0)
                list.Add(sequenceB2bClass);
            }
            while (count > 0);
            return list.ToArray();
          }
        }

        [Description("End Of Block")]
        public Tag16S EndOfBlock_B2_16S
        {
          get
          {
            return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0014U0006);
          }
        }

        [Description("End Of Block")]
        public Tag16S Tag16S_EndOfBlock_B2
        {
          get
          {
            return this.EndOfBlock_B2_16S;
          }
        }

        internal SequenceB2Class(SwiftElement parent, int index, bool createTags)
          : base(parent, index, createTags)
        {
        }

        public MT584.SequenceBClass.SequenceB2Class.SequenceB2aClass AddSequenceB2a()
        {
          return new MT584.SequenceBClass.SequenceB2Class.SequenceB2aClass((SwiftElement) this, this.SequenceB2a.Length, true);
        }

        public void RemoveSequenceB2a(MT584.SequenceBClass.SequenceB2Class.SequenceB2aClass sequence)
        {
          foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
            this.RemoveTag(tag);
        }

        public MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass AddSequenceB2b()
        {
          return new MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass((SwiftElement) this, this.SequenceB2b.Length, true);
        }

        public void RemoveSequenceB2b(MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass sequence)
        {
          foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
            this.RemoveTag(tag);
        }

        public class SequenceB2aClass : SwiftTagSequence
        {
          internal override SwiftDefinitionElement Definition
          {
            get
            {
              return (SwiftDefinitionElement) MT584.U009DU0003;
            }
          }

          [Description("Start Of Block")]
          public Tag16R StartOfBlock_B2a_16R
          {
            get
            {
              return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U009EU0003);
            }
          }

          [Description("Start Of Block")]
          public Tag16R Tag16R_StartOfBlock_B2a
          {
            get
            {
              return this.StartOfBlock_B2a_16R;
            }
          }

          [Description("Linked Message")]
          public Tag13A NumberIdentification_B2a_13A
          {
            get
            {
              return new Tag13A((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0002U0004);
            }
          }

          [Description("Linked Message")]
          public Tag13A Tag13A_NumberIdentification_B2a
          {
            get
            {
              return this.NumberIdentification_B2a_13A;
            }
          }

          [Description("Linked Message")]
          public Tag13B NumberIdentification_B2a_13B
          {
            get
            {
              return new Tag13B((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0005U0004);
            }
          }

          [Description("Linked Message")]
          public Tag13B Tag13B_NumberIdentification_B2a
          {
            get
            {
              return this.NumberIdentification_B2a_13B;
            }
          }

          [Description("Reference")]
          public Tag20C Reference_B2a_20C
          {
            get
            {
              return new Tag20C((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U000EU0004);
            }
          }

          [Description("Reference")]
          public Tag20C Tag20C_Reference_B2a
          {
            get
            {
              return this.Reference_B2a_20C;
            }
          }

          [Description("End Of Block")]
          public Tag16S EndOfBlock_B2a_16S
          {
            get
            {
              return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0011U0004);
            }
          }

          [Description("End Of Block")]
          public Tag16S Tag16S_EndOfBlock_B2a
          {
            get
            {
              return this.EndOfBlock_B2a_16S;
            }
          }

          internal SequenceB2aClass(SwiftElement parent, int index, bool createTags)
            : base(parent, index, createTags)
          {
          }
        }

        public class SequenceB2bClass : SwiftTagSequence
        {
          internal override SwiftDefinitionElement Definition
          {
            get
            {
              return (SwiftDefinitionElement) MT584.U0013U0004;
            }
          }

          [Description("Start Of Block")]
          public Tag16R StartOfBlock_B2b_16R
          {
            get
            {
              return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0014U0004);
            }
          }

          [Description("Start Of Block")]
          public Tag16R Tag16R_StartOfBlock_B2b
          {
            get
            {
              return this.StartOfBlock_B2b_16R;
            }
          }

          [Description("Date/Time")]
          public Tag98A[] Date_B2b_98A
          {
            get
            {
              int index = -1;
              List<Tag98A> list = new List<Tag98A>();
              int count;
              do
              {
                ++index;
                Tag98A tag98A = new Tag98A((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0017U0004);
                count = this.ListTags((SwiftElement) tag98A).Count;
                if (count > 0)
                  list.Add(tag98A);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Date/Time")]
          public Tag98A[] Tag98A_Date_B2b
          {
            get
            {
              return this.Date_B2b_98A;
            }
          }

          [Description("Date/Time")]
          public Tag98B[] DateCode_B2b_98B
          {
            get
            {
              int index = -1;
              List<Tag98B> list = new List<Tag98B>();
              int count;
              do
              {
                ++index;
                Tag98B tag98B = new Tag98B((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U001AU0004);
                count = this.ListTags((SwiftElement) tag98B).Count;
                if (count > 0)
                  list.Add(tag98B);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Date/Time")]
          public Tag98B[] Tag98B_DateCode_B2b
          {
            get
            {
              return this.DateCode_B2b_98B;
            }
          }

          [Description("Date/Time")]
          public Tag98C[] DateTime_B2b_98C
          {
            get
            {
              int index = -1;
              List<Tag98C> list = new List<Tag98C>();
              int count;
              do
              {
                ++index;
                Tag98C tag98C = new Tag98C((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U001EU0004);
                count = this.ListTags((SwiftElement) tag98C).Count;
                if (count > 0)
                  list.Add(tag98C);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Date/Time")]
          public Tag98C[] Tag98C_DateTime_B2b
          {
            get
            {
              return this.DateTime_B2b_98C;
            }
          }

          [Description("Indicator")]
          public Tag22F[] Indicator_B2b_22F
          {
            get
            {
              int index = -1;
              List<Tag22F> list = new List<Tag22F>();
              int count;
              do
              {
                ++index;
                Tag22F tag22F = new Tag22F((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0083U0004);
                count = this.ListTags((SwiftElement) tag22F).Count;
                if (count > 0)
                  list.Add(tag22F);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Indicator")]
          public Tag22F[] Tag22F_Indicator_B2b
          {
            get
            {
              return this.Indicator_B2b_22F;
            }
          }

          [Description("Indicator")]
          public MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.Tag22H[] Indicator_B2b_22H
          {
            get
            {
              int index = -1;
              List<MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.Tag22H> list = new List<MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.Tag22H>();
              int count;
              do
              {
                ++index;
                MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.Tag22H tag22H = new MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.Tag22H((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0088U0004);
                count = this.ListTags((SwiftElement) tag22H).Count;
                if (count > 0)
                  list.Add(tag22H);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Indicator")]
          public MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.Tag22H[] Tag22H_Indicator_B2b
          {
            get
            {
              return this.Indicator_B2b_22H;
            }
          }

          [Description("Quantity of Financial Instrument Traded")]
          public Tag36B[] QuantityOfFinancialInstrument_B2b_36B
          {
            get
            {
              int index = -1;
              List<Tag36B> list = new List<Tag36B>();
              int count;
              do
              {
                ++index;
                Tag36B tag36B = new Tag36B((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U008BU0004);
                count = this.ListTags((SwiftElement) tag36B).Count;
                if (count > 0)
                  list.Add(tag36B);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Quantity of Financial Instrument Traded")]
          public Tag36B[] Tag36B_QuantityOfFinancialInstrument_B2b
          {
            get
            {
              return this.QuantityOfFinancialInstrument_B2b_36B;
            }
          }

          [Description("Settlement Amount")]
          public Tag19A Amount_B2b_19A
          {
            get
            {
              return new Tag19A((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0090U0004);
            }
          }

          [Description("Settlement Amount")]
          public Tag19A Tag19A_Amount_B2b
          {
            get
            {
              return this.Amount_B2b_19A;
            }
          }

          [Description("Currency")]
          public Tag11A Currency_B2b_11A
          {
            get
            {
              return new Tag11A((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0093U0004);
            }
          }

          [Description("Currency")]
          public Tag11A Tag11A_Currency_B2b
          {
            get
            {
              return this.Currency_B2b_11A;
            }
          }

          [Description("Confirmation Parties")]
          public MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.SequenceB2b1Class[] SequenceB2b1
          {
            get
            {
              int index = -1;
              List<MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.SequenceB2b1Class> list = new List<MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.SequenceB2b1Class>();
              int count;
              do
              {
                ++index;
                MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.SequenceB2b1Class sequenceB2b1Class = new MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.SequenceB2b1Class((SwiftElement) this, index, false);
                count = this.ListTags((SwiftElement) sequenceB2b1Class).Count;
                if (count > 0)
                  list.Add(sequenceB2b1Class);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Amounts")]
          public MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.SequenceB2b2Class[] SequenceB2b2
          {
            get
            {
              int index = -1;
              List<MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.SequenceB2b2Class> list = new List<MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.SequenceB2b2Class>();
              int count;
              do
              {
                ++index;
                MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.SequenceB2b2Class sequenceB2b2Class = new MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.SequenceB2b2Class((SwiftElement) this, index, false);
                count = this.ListTags((SwiftElement) sequenceB2b2Class).Count;
                if (count > 0)
                  list.Add(sequenceB2b2Class);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("End Of Block")]
          public Tag16S EndOfBlock_B2b_16S
          {
            get
            {
              return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0012U0006);
            }
          }

          [Description("End Of Block")]
          public Tag16S Tag16S_EndOfBlock_B2b
          {
            get
            {
              return this.EndOfBlock_B2b_16S;
            }
          }

          internal SequenceB2bClass(SwiftElement parent, int index, bool createTags)
            : base(parent, index, createTags)
          {
          }

          public Tag98A AddDate_B2b_98A()
          {
            return new Tag98A((SwiftElement) this, this.Date_B2b_98A.Length, (SwiftDefinitionElement) MT584.U0017U0004)
            {
              Value = string.Empty
            };
          }

          public void RemoveDate_B2b_98A(Tag98A tag)
          {
            this.RemoveTag(tag.GetTag());
          }

          public Tag98B AddDateCode_B2b_98B()
          {
            return new Tag98B((SwiftElement) this, this.DateCode_B2b_98B.Length, (SwiftDefinitionElement) MT584.U001AU0004)
            {
              Value = string.Empty
            };
          }

          public void RemoveDateCode_B2b_98B(Tag98B tag)
          {
            this.RemoveTag(tag.GetTag());
          }

          public Tag98C AddDateTime_B2b_98C()
          {
            return new Tag98C((SwiftElement) this, this.DateTime_B2b_98C.Length, (SwiftDefinitionElement) MT584.U001EU0004)
            {
              Value = string.Empty
            };
          }

          public void RemoveDateTime_B2b_98C(Tag98C tag)
          {
            this.RemoveTag(tag.GetTag());
          }

          public Tag22F AddIndicator_B2b_22F()
          {
            return new Tag22F((SwiftElement) this, this.Indicator_B2b_22F.Length, (SwiftDefinitionElement) MT584.U0083U0004)
            {
              Value = string.Empty
            };
          }

          public void RemoveIndicator_B2b_22F(Tag22F tag)
          {
            this.RemoveTag(tag.GetTag());
          }

          public MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.Tag22H AddIndicator_B2b_22H()
          {
            return new MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.Tag22H((SwiftElement) this, this.Indicator_B2b_22H.Length, (SwiftDefinitionElement) MT584.U0088U0004)
            {
              Value = string.Empty
            };
          }

          public void RemoveIndicator_B2b_22H(MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.Tag22H tag)
          {
            this.RemoveTag(tag.GetTag());
          }

          public Tag36B AddQuantityOfFinancialInstrument_B2b_36B()
          {
            return new Tag36B((SwiftElement) this, this.QuantityOfFinancialInstrument_B2b_36B.Length, (SwiftDefinitionElement) MT584.U008BU0004)
            {
              Value = string.Empty
            };
          }

          public void RemoveQuantityOfFinancialInstrument_B2b_36B(Tag36B tag)
          {
            this.RemoveTag(tag.GetTag());
          }

          public MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.SequenceB2b1Class AddSequenceB2b1()
          {
            return new MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.SequenceB2b1Class((SwiftElement) this, this.SequenceB2b1.Length, true);
          }

          public void RemoveSequenceB2b1(MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.SequenceB2b1Class sequence)
          {
            foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
              this.RemoveTag(tag);
          }

          public MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.SequenceB2b2Class AddSequenceB2b2()
          {
            return new MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.SequenceB2b2Class((SwiftElement) this, this.SequenceB2b2.Length, true);
          }

          public void RemoveSequenceB2b2(MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.SequenceB2b2Class sequence)
          {
            foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
              this.RemoveTag(tag);
          }

          public class Tag22H : SwiftTagWrapper
          {
            public string Value
            {
              get
              {
                return this.GetValue();
              }
              set
              {
                this.SetValue("22H", value);
              }
            }

            internal Tag22H(SwiftElement parent, int index, SwiftDefinitionElement definition)
              : base(parent, index, definition)
            {
            }
          }

          public class SequenceB2b1Class : SwiftTagSequence
          {
            internal override SwiftDefinitionElement Definition
            {
              get
              {
                return (SwiftDefinitionElement) MT584.U0096U0004;
              }
            }

            [Description("Start Of Block")]
            public Tag16R StartOfBlock_B2b1_16R
            {
              get
              {
                return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0097U0004);
              }
            }

            [Description("Start Of Block")]
            public Tag16R Tag16R_StartOfBlock_B2b1
            {
              get
              {
                return this.StartOfBlock_B2b1_16R;
              }
            }

            [Description("Party")]
            public Tag95C[] Party_B2b1_95C
            {
              get
              {
                int index = -1;
                List<Tag95C> list = new List<Tag95C>();
                int count;
                do
                {
                  ++index;
                  Tag95C tag95C = new Tag95C((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U009AU0004);
                  count = this.ListTags((SwiftElement) tag95C).Count;
                  if (count > 0)
                    list.Add(tag95C);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Party")]
            public Tag95C[] Tag95C_Party_B2b1
            {
              get
              {
                return this.Party_B2b1_95C;
              }
            }

            [Description("Party")]
            public Tag95P[] Party_B2b1_95P
            {
              get
              {
                int index = -1;
                List<Tag95P> list = new List<Tag95P>();
                int count;
                do
                {
                  ++index;
                  Tag95P tag95P = new Tag95P((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U009DU0004);
                  count = this.ListTags((SwiftElement) tag95P).Count;
                  if (count > 0)
                    list.Add(tag95P);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Party")]
            public Tag95P[] Tag95P_Party_B2b1
            {
              get
              {
                return this.Party_B2b1_95P;
              }
            }

            [Description("Party")]
            public Tag95R[] Party_B2b1_95R
            {
              get
              {
                int index = -1;
                List<Tag95R> list = new List<Tag95R>();
                int count;
                do
                {
                  ++index;
                  Tag95R tag95R = new Tag95R((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0001U0005);
                  count = this.ListTags((SwiftElement) tag95R).Count;
                  if (count > 0)
                    list.Add(tag95R);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Party")]
            public Tag95R[] Tag95R_Party_B2b1
            {
              get
              {
                return this.Party_B2b1_95R;
              }
            }

            [Description("Party")]
            public Tag95Q[] Party_B2b1_95Q
            {
              get
              {
                int index = -1;
                List<Tag95Q> list = new List<Tag95Q>();
                int count;
                do
                {
                  ++index;
                  Tag95Q tag95Q = new Tag95Q((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0005U0005);
                  count = this.ListTags((SwiftElement) tag95Q).Count;
                  if (count > 0)
                    list.Add(tag95Q);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Party")]
            public Tag95Q[] Tag95Q_Party_B2b1
            {
              get
              {
                return this.Party_B2b1_95Q;
              }
            }

            [Description("Party")]
            public MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.SequenceB2b1Class.Tag95S[] Party_B2b1_95S
            {
              get
              {
                int index = -1;
                List<MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.SequenceB2b1Class.Tag95S> list = new List<MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.SequenceB2b1Class.Tag95S>();
                int count;
                do
                {
                  ++index;
                  MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.SequenceB2b1Class.Tag95S tag95S = new MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.SequenceB2b1Class.Tag95S((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0008U0005);
                  count = this.ListTags((SwiftElement) tag95S).Count;
                  if (count > 0)
                    list.Add(tag95S);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Party")]
            public MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.SequenceB2b1Class.Tag95S[] Tag95S_Party_B2b1
            {
              get
              {
                return this.Party_B2b1_95S;
              }
            }

            [Description("Account")]
            public Tag97A[] Account_B2b1_97A
            {
              get
              {
                int index = -1;
                List<Tag97A> list = new List<Tag97A>();
                int count;
                do
                {
                  ++index;
                  Tag97A tag97A = new Tag97A((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0014U0005);
                  count = this.ListTags((SwiftElement) tag97A).Count;
                  if (count > 0)
                    list.Add(tag97A);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Account")]
            public Tag97A[] Tag97A_Account_B2b1
            {
              get
              {
                return this.Account_B2b1_97A;
              }
            }

            [Description("Account")]
            public Tag97B[] Account_B2b1_97B
            {
              get
              {
                int index = -1;
                List<Tag97B> list = new List<Tag97B>();
                int count;
                do
                {
                  ++index;
                  Tag97B tag97B = new Tag97B((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0017U0005);
                  count = this.ListTags((SwiftElement) tag97B).Count;
                  if (count > 0)
                    list.Add(tag97B);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Account")]
            public Tag97B[] Tag97B_Account_B2b1
            {
              get
              {
                return this.Account_B2b1_97B;
              }
            }

            [Description("Processing Date/Time")]
            public Tag98A Date_B2b1_98A
            {
              get
              {
                return new Tag98A((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U001DU0005);
              }
            }

            [Description("Processing Date/Time")]
            public Tag98A Tag98A_Date_B2b1
            {
              get
              {
                return this.Date_B2b1_98A;
              }
            }

            [Description("Processing Date/Time")]
            public Tag98C DateTime_B2b1_98C
            {
              get
              {
                return new Tag98C((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U007FU0005);
              }
            }

            [Description("Processing Date/Time")]
            public Tag98C Tag98C_DateTime_B2b1
            {
              get
              {
                return this.DateTime_B2b1_98C;
              }
            }

            [Description("Processing Reference")]
            public Tag20C Reference_B2b1_20C
            {
              get
              {
                return new Tag20C((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0084U0005);
              }
            }

            [Description("Processing Reference")]
            public Tag20C Tag20C_Reference_B2b1
            {
              get
              {
                return this.Reference_B2b1_20C;
              }
            }

            [Description("Narrative")]
            public Tag70C[] Narrative_B2b1_70C
            {
              get
              {
                int index = -1;
                List<Tag70C> list = new List<Tag70C>();
                int count;
                do
                {
                  ++index;
                  Tag70C tag70C = new Tag70C((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0089U0005);
                  count = this.ListTags((SwiftElement) tag70C).Count;
                  if (count > 0)
                    list.Add(tag70C);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Narrative")]
            public Tag70C[] Tag70C_Narrative_B2b1
            {
              get
              {
                return this.Narrative_B2b1_70C;
              }
            }

            [Description("Narrative")]
            public Tag70E[] Narrative_B2b1_70E
            {
              get
              {
                int index = -1;
                List<Tag70E> list = new List<Tag70E>();
                int count;
                do
                {
                  ++index;
                  Tag70E tag70E = new Tag70E((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U008CU0005);
                  count = this.ListTags((SwiftElement) tag70E).Count;
                  if (count > 0)
                    list.Add(tag70E);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Narrative")]
            public Tag70E[] Tag70E_Narrative_B2b1
            {
              get
              {
                return this.Narrative_B2b1_70E;
              }
            }

            [Description("Party Capacity Indicator")]
            public Tag22F Indicator_B2b1_22F
            {
              get
              {
                return new Tag22F((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U008FU0005);
              }
            }

            [Description("Party Capacity Indicator")]
            public Tag22F Tag22F_Indicator_B2b1
            {
              get
              {
                return this.Indicator_B2b1_22F;
              }
            }

            [Description("End Of Block")]
            public Tag16S EndOfBlock_B2b1_16S
            {
              get
              {
                return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0093U0005);
              }
            }

            [Description("End Of Block")]
            public Tag16S Tag16S_EndOfBlock_B2b1
            {
              get
              {
                return this.EndOfBlock_B2b1_16S;
              }
            }

            internal SequenceB2b1Class(SwiftElement parent, int index, bool createTags)
              : base(parent, index, createTags)
            {
            }

            public Tag95C AddParty_B2b1_95C()
            {
              return new Tag95C((SwiftElement) this, this.Party_B2b1_95C.Length, (SwiftDefinitionElement) MT584.U009AU0004)
              {
                Value = string.Empty
              };
            }

            public void RemoveParty_B2b1_95C(Tag95C tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public Tag95P AddParty_B2b1_95P()
            {
              return new Tag95P((SwiftElement) this, this.Party_B2b1_95P.Length, (SwiftDefinitionElement) MT584.U009DU0004)
              {
                Value = string.Empty
              };
            }

            public void RemoveParty_B2b1_95P(Tag95P tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public Tag95R AddParty_B2b1_95R()
            {
              return new Tag95R((SwiftElement) this, this.Party_B2b1_95R.Length, (SwiftDefinitionElement) MT584.U0001U0005)
              {
                Value = string.Empty
              };
            }

            public void RemoveParty_B2b1_95R(Tag95R tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public Tag95Q AddParty_B2b1_95Q()
            {
              return new Tag95Q((SwiftElement) this, this.Party_B2b1_95Q.Length, (SwiftDefinitionElement) MT584.U0005U0005)
              {
                Value = string.Empty
              };
            }

            public void RemoveParty_B2b1_95Q(Tag95Q tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.SequenceB2b1Class.Tag95S AddParty_B2b1_95S()
            {
              return new MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.SequenceB2b1Class.Tag95S((SwiftElement) this, this.Party_B2b1_95S.Length, (SwiftDefinitionElement) MT584.U0008U0005)
              {
                Value = string.Empty
              };
            }

            public void RemoveParty_B2b1_95S(MT584.SequenceBClass.SequenceB2Class.SequenceB2bClass.SequenceB2b1Class.Tag95S tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public Tag97A AddAccount_B2b1_97A()
            {
              return new Tag97A((SwiftElement) this, this.Account_B2b1_97A.Length, (SwiftDefinitionElement) MT584.U0014U0005)
              {
                Value = string.Empty
              };
            }

            public void RemoveAccount_B2b1_97A(Tag97A tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public Tag97B AddAccount_B2b1_97B()
            {
              return new Tag97B((SwiftElement) this, this.Account_B2b1_97B.Length, (SwiftDefinitionElement) MT584.U0017U0005)
              {
                Value = string.Empty
              };
            }

            public void RemoveAccount_B2b1_97B(Tag97B tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public Tag70C AddNarrative_B2b1_70C()
            {
              return new Tag70C((SwiftElement) this, this.Narrative_B2b1_70C.Length, (SwiftDefinitionElement) MT584.U0089U0005)
              {
                Value = string.Empty
              };
            }

            public void RemoveNarrative_B2b1_70C(Tag70C tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public Tag70E AddNarrative_B2b1_70E()
            {
              return new Tag70E((SwiftElement) this, this.Narrative_B2b1_70E.Length, (SwiftDefinitionElement) MT584.U008CU0005)
              {
                Value = string.Empty
              };
            }

            public void RemoveNarrative_B2b1_70E(Tag70E tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public class Tag95S : SwiftTagWrapper
            {
              public string Value
              {
                get
                {
                  return this.GetValue();
                }
                set
                {
                  this.SetValue("95S", value);
                }
              }

              internal Tag95S(SwiftElement parent, int index, SwiftDefinitionElement definition)
                : base(parent, index, definition)
              {
              }
            }
          }

          public class SequenceB2b2Class : SwiftTagSequence
          {
            internal override SwiftDefinitionElement Definition
            {
              get
              {
                return (SwiftDefinitionElement) MT584.U0095U0005;
              }
            }

            [Description("Start Of Block")]
            public Tag16R StartOfBlock_B2b2_16R
            {
              get
              {
                return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0096U0005);
              }
            }

            [Description("Start Of Block")]
            public Tag16R Tag16R_StartOfBlock_B2b2
            {
              get
              {
                return this.StartOfBlock_B2b2_16R;
              }
            }

            [Description("Amount")]
            public Tag19A[] Amount_B2b2_19A
            {
              get
              {
                int index = -1;
                List<Tag19A> list = new List<Tag19A>();
                int count;
                do
                {
                  ++index;
                  Tag19A tag19A = new Tag19A((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0098U0005);
                  count = this.ListTags((SwiftElement) tag19A).Count;
                  if (count > 0)
                    list.Add(tag19A);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Amount")]
            public Tag19A[] Tag19A_Amount_B2b2
            {
              get
              {
                return this.Amount_B2b2_19A;
              }
            }

            [Description("Value Date")]
            public Tag98A Date_B2b2_98A
            {
              get
              {
                return new Tag98A((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U009CU0005);
              }
            }

            [Description("Value Date")]
            public Tag98A Tag98A_Date_B2b2
            {
              get
              {
                return this.Date_B2b2_98A;
              }
            }

            [Description("Value Date")]
            public Tag98C DateTime_B2b2_98C
            {
              get
              {
                return new Tag98C((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U009FU0005);
              }
            }

            [Description("Value Date")]
            public Tag98C Tag98C_DateTime_B2b2
            {
              get
              {
                return this.DateTime_B2b2_98C;
              }
            }

            [Description("Exchange Rate")]
            public Tag92B Rate_B2b2_92B
            {
              get
              {
                return new Tag92B((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0005U0006);
              }
            }

            [Description("Exchange Rate")]
            public Tag92B Tag92B_Rate_B2b2
            {
              get
              {
                return this.Rate_B2b2_92B;
              }
            }

            [Description("End Of Block")]
            public Tag16S EndOfBlock_B2b2_16S
            {
              get
              {
                return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0010U0006);
              }
            }

            [Description("End Of Block")]
            public Tag16S Tag16S_EndOfBlock_B2b2
            {
              get
              {
                return this.EndOfBlock_B2b2_16S;
              }
            }

            internal SequenceB2b2Class(SwiftElement parent, int index, bool createTags)
              : base(parent, index, createTags)
            {
            }

            public Tag19A AddAmount_B2b2_19A()
            {
              return new Tag19A((SwiftElement) this, this.Amount_B2b2_19A.Length, (SwiftDefinitionElement) MT584.U0098U0005)
              {
                Value = string.Empty
              };
            }

            public void RemoveAmount_B2b2_19A(Tag19A tag)
            {
              this.RemoveTag(tag.GetTag());
            }
          }
        }
      }
    }

    public class SequenceCClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT584.U0018U0006;
        }
      }

      [Description("Start Of Block")]
      public Tag16R StartOfBlock_C_16R
      {
        get
        {
          return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0019U0006);
        }
      }

      [Description("Start Of Block")]
      public Tag16R Tag16R_StartOfBlock_C
      {
        get
        {
          return this.StartOfBlock_C_16R;
        }
      }

      [Description("Reference")]
      public Tag20C Reference_C_20C
      {
        get
        {
          return new Tag20C((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U001BU0006);
        }
      }

      [Description("Reference")]
      public Tag20C Tag20C_Reference_C
      {
        get
        {
          return this.Reference_C_20C;
        }
      }

      [Description("Status Code")]
      public Tag25D StatusCode_C_25D
      {
        get
        {
          return new Tag25D((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U001EU0006);
        }
      }

      [Description("Status Code")]
      public Tag25D Tag25D_StatusCode_C
      {
        get
        {
          return this.StatusCode_C_25D;
        }
      }

      [Description("Reason Code")]
      public Tag24B ReasonCode_C_24B
      {
        get
        {
          return new Tag24B((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0081U0006);
        }
      }

      [Description("Reason Code")]
      public Tag24B Tag24B_ReasonCode_C
      {
        get
        {
          return this.ReasonCode_C_24B;
        }
      }

      [Description("Financial Instrument")]
      public MT584.SequenceCClass.SequenceC1Class[] SequenceC1
      {
        get
        {
          int index = -1;
          List<MT584.SequenceCClass.SequenceC1Class> list = new List<MT584.SequenceCClass.SequenceC1Class>();
          int count;
          do
          {
            ++index;
            MT584.SequenceCClass.SequenceC1Class sequenceC1Class = new MT584.SequenceCClass.SequenceC1Class((SwiftElement) this, index, false);
            count = this.ListTags((SwiftElement) sequenceC1Class).Count;
            if (count > 0)
              list.Add(sequenceC1Class);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("End Of Block")]
      public Tag16S EndOfBlock_C_16S
      {
        get
        {
          return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0014U000F);
        }
      }

      [Description("End Of Block")]
      public Tag16S Tag16S_EndOfBlock_C
      {
        get
        {
          return this.EndOfBlock_C_16S;
        }
      }

      internal SequenceCClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }

      public MT584.SequenceCClass.SequenceC1Class AddSequenceC1()
      {
        return new MT584.SequenceCClass.SequenceC1Class((SwiftElement) this, this.SequenceC1.Length, true);
      }

      public void RemoveSequenceC1(MT584.SequenceCClass.SequenceC1Class sequence)
      {
        foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
          this.RemoveTag(tag);
      }

      public class SequenceC1Class : SwiftTagSequence
      {
        internal override SwiftDefinitionElement Definition
        {
          get
          {
            return (SwiftDefinitionElement) MT584.U0086U0006;
          }
        }

        [Description("Start Of Block")]
        public Tag16R StartOfBlock_C1_16R
        {
          get
          {
            return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0087U0006);
          }
        }

        [Description("Start Of Block")]
        public Tag16R Tag16R_StartOfBlock_C1
        {
          get
          {
            return this.StartOfBlock_C1_16R;
          }
        }

        [Description("Identification of the Financial Instrument")]
        public Tag35B IdentificationOfFinancialInstrument_C1_35B
        {
          get
          {
            return new Tag35B((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0089U0006);
          }
        }

        [Description("Identification of the Financial Instrument")]
        public Tag35B Tag35B_IdentificationOfFinancialInstrument_C1
        {
          get
          {
            return this.IdentificationOfFinancialInstrument_C1_35B;
          }
        }

        [Description("Financial Instrument Attributes")]
        public MT584.SequenceCClass.SequenceC1Class.SequenceC1aClass SequenceC1a
        {
          get
          {
            MT584.SequenceCClass.SequenceC1Class.SequenceC1aClass sequenceC1aClass = new MT584.SequenceCClass.SequenceC1Class.SequenceC1aClass((SwiftElement) this, 0, false);
            if (this.ListTags((SwiftElement) sequenceC1aClass).Count > 0)
              return sequenceC1aClass;
            else
              return (MT584.SequenceCClass.SequenceC1Class.SequenceC1aClass) null;
          }
        }

        [Description("Linkages")]
        public MT584.SequenceCClass.SequenceC1Class.SequenceC1bClass[] SequenceC1b
        {
          get
          {
            int index = -1;
            List<MT584.SequenceCClass.SequenceC1Class.SequenceC1bClass> list = new List<MT584.SequenceCClass.SequenceC1Class.SequenceC1bClass>();
            int count;
            do
            {
              ++index;
              MT584.SequenceCClass.SequenceC1Class.SequenceC1bClass sequenceC1bClass = new MT584.SequenceCClass.SequenceC1Class.SequenceC1bClass((SwiftElement) this, index, false);
              count = this.ListTags((SwiftElement) sequenceC1bClass).Count;
              if (count > 0)
                list.Add(sequenceC1bClass);
            }
            while (count > 0);
            return list.ToArray();
          }
        }

        [Description("Trade Details")]
        public MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass[] SequenceC1c
        {
          get
          {
            int index = -1;
            List<MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass> list = new List<MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass>();
            int count;
            do
            {
              ++index;
              MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass sequenceC1cClass = new MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass((SwiftElement) this, index, false);
              count = this.ListTags((SwiftElement) sequenceC1cClass).Count;
              if (count > 0)
                list.Add(sequenceC1cClass);
            }
            while (count > 0);
            return list.ToArray();
          }
        }

        [Description("End Of Block")]
        public Tag16S EndOfBlock_C1_16S
        {
          get
          {
            return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0012U000F);
          }
        }

        [Description("End Of Block")]
        public Tag16S Tag16S_EndOfBlock_C1
        {
          get
          {
            return this.EndOfBlock_C1_16S;
          }
        }

        internal SequenceC1Class(SwiftElement parent, int index, bool createTags)
          : base(parent, index, createTags)
        {
        }

        public MT584.SequenceCClass.SequenceC1Class.SequenceC1aClass AddSequenceC1a()
        {
          return this.SequenceC1a ?? new MT584.SequenceCClass.SequenceC1Class.SequenceC1aClass((SwiftElement) this, 0, true);
        }

        public void RemoveSequenceC1a(MT584.SequenceCClass.SequenceC1Class.SequenceC1aClass sequence)
        {
          foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
            this.RemoveTag(tag);
        }

        public MT584.SequenceCClass.SequenceC1Class.SequenceC1bClass AddSequenceC1b()
        {
          return new MT584.SequenceCClass.SequenceC1Class.SequenceC1bClass((SwiftElement) this, this.SequenceC1b.Length, true);
        }

        public void RemoveSequenceC1b(MT584.SequenceCClass.SequenceC1Class.SequenceC1bClass sequence)
        {
          foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
            this.RemoveTag(tag);
        }

        public MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass AddSequenceC1c()
        {
          return new MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass((SwiftElement) this, this.SequenceC1c.Length, true);
        }

        public void RemoveSequenceC1c(MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass sequence)
        {
          foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
            this.RemoveTag(tag);
        }

        public class SequenceC1aClass : SwiftTagSequence
        {
          internal override SwiftDefinitionElement Definition
          {
            get
            {
              return (SwiftDefinitionElement) MT584.U008DU0006;
            }
          }

          [Description("Start Of Block")]
          public Tag16R StartOfBlock_C1a_16R
          {
            get
            {
              return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U008EU0006);
            }
          }

          [Description("Start Of Block")]
          public Tag16R Tag16R_StartOfBlock_C1a
          {
            get
            {
              return this.StartOfBlock_C1a_16R;
            }
          }

          [Description("Place of Trade")]
          public Tag94B Place_C1a_94B
          {
            get
            {
              return new Tag94B((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0090U0006);
            }
          }

          [Description("Place of Trade")]
          public Tag94B Tag94B_Place_C1a
          {
            get
            {
              return this.Place_C1a_94B;
            }
          }

          [Description("Indicator")]
          public Tag22F[] Indicator_C1a_22F
          {
            get
            {
              int index = -1;
              List<Tag22F> list = new List<Tag22F>();
              int count;
              do
              {
                ++index;
                Tag22F tag22F = new Tag22F((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0096U0006);
                count = this.ListTags((SwiftElement) tag22F).Count;
                if (count > 0)
                  list.Add(tag22F);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Indicator")]
          public Tag22F[] Tag22F_Indicator_C1a
          {
            get
            {
              return this.Indicator_C1a_22F;
            }
          }

          [Description("Type of Financial Instrument")]
          public Tag12A[] TypeOfFinancialInstrument_C1a_12A
          {
            get
            {
              int index = -1;
              List<Tag12A> list = new List<Tag12A>();
              int count;
              do
              {
                ++index;
                Tag12A tag12A = new Tag12A((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U009BU0006);
                count = this.ListTags((SwiftElement) tag12A).Count;
                if (count > 0)
                  list.Add(tag12A);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Type of Financial Instrument")]
          public Tag12A[] Tag12A_TypeOfFinancialInstrument_C1a
          {
            get
            {
              return this.TypeOfFinancialInstrument_C1a_12A;
            }
          }

          [Description("Type of Financial Instrument")]
          public Tag12B[] TypeOfFinancialInstrument_C1a_12B
          {
            get
            {
              int index = -1;
              List<Tag12B> list = new List<Tag12B>();
              int count;
              do
              {
                ++index;
                Tag12B tag12B = new Tag12B((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U009FU0006);
                count = this.ListTags((SwiftElement) tag12B).Count;
                if (count > 0)
                  list.Add(tag12B);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Type of Financial Instrument")]
          public Tag12B[] Tag12B_TypeOfFinancialInstrument_C1a
          {
            get
            {
              return this.TypeOfFinancialInstrument_C1a_12B;
            }
          }

          [Description("Type of Financial Instrument")]
          public Tag12C[] TypeOfFinancialInstrument_C1a_12C
          {
            get
            {
              int index = -1;
              List<Tag12C> list = new List<Tag12C>();
              int count;
              do
              {
                ++index;
                Tag12C tag12C = new Tag12C((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0004U0007);
                count = this.ListTags((SwiftElement) tag12C).Count;
                if (count > 0)
                  list.Add(tag12C);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Type of Financial Instrument")]
          public Tag12C[] Tag12C_TypeOfFinancialInstrument_C1a
          {
            get
            {
              return this.TypeOfFinancialInstrument_C1a_12C;
            }
          }

          [Description("Currency of Denomination")]
          public Tag11A Currency_C1a_11A
          {
            get
            {
              return new Tag11A((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0007U0007);
            }
          }

          [Description("Currency of Denomination")]
          public Tag11A Tag11A_Currency_C1a
          {
            get
            {
              return this.Currency_C1a_11A;
            }
          }

          [Description("Date/Time")]
          public Tag98A[] Date_C1a_98A
          {
            get
            {
              int index = -1;
              List<Tag98A> list = new List<Tag98A>();
              int count;
              do
              {
                ++index;
                Tag98A tag98A = new Tag98A((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U000FU0007);
                count = this.ListTags((SwiftElement) tag98A).Count;
                if (count > 0)
                  list.Add(tag98A);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Date/Time")]
          public Tag98A[] Tag98A_Date_C1a
          {
            get
            {
              return this.Date_C1a_98A;
            }
          }

          [Description("Rate")]
          public Tag92A[] Rate_C1a_92A
          {
            get
            {
              int index = -1;
              List<Tag92A> list = new List<Tag92A>();
              int count;
              do
              {
                ++index;
                Tag92A tag92A = new Tag92A((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0012U0007);
                count = this.ListTags((SwiftElement) tag92A).Count;
                if (count > 0)
                  list.Add(tag92A);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Rate")]
          public Tag92A[] Tag92A_Rate_C1a
          {
            get
            {
              return this.Rate_C1a_92A;
            }
          }

          [Description("Number Identification")]
          public Tag13A[] NumberIdentification_C1a_13A
          {
            get
            {
              int index = -1;
              List<Tag13A> list = new List<Tag13A>();
              int count;
              do
              {
                ++index;
                Tag13A tag13A = new Tag13A((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0016U0007);
                count = this.ListTags((SwiftElement) tag13A).Count;
                if (count > 0)
                  list.Add(tag13A);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Number Identification")]
          public Tag13A[] Tag13A_NumberIdentification_C1a
          {
            get
            {
              return this.NumberIdentification_C1a_13A;
            }
          }

          [Description("Number Identification")]
          public Tag13B[] NumberIdentification_C1a_13B
          {
            get
            {
              int index = -1;
              List<Tag13B> list = new List<Tag13B>();
              int count;
              do
              {
                ++index;
                Tag13B tag13B = new Tag13B((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0019U0007);
                count = this.ListTags((SwiftElement) tag13B).Count;
                if (count > 0)
                  list.Add(tag13B);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Number Identification")]
          public Tag13B[] Tag13B_NumberIdentification_C1a
          {
            get
            {
              return this.NumberIdentification_C1a_13B;
            }
          }

          [Description("Flag")]
          public Tag17B[] Flag_C1a_17B
          {
            get
            {
              int index = -1;
              List<Tag17B> list = new List<Tag17B>();
              int count;
              do
              {
                ++index;
                Tag17B tag17B = new Tag17B((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U001DU0007);
                count = this.ListTags((SwiftElement) tag17B).Count;
                if (count > 0)
                  list.Add(tag17B);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Flag")]
          public Tag17B[] Tag17B_Flag_C1a
          {
            get
            {
              return this.Flag_C1a_17B;
            }
          }

          [Description("Price")]
          public Tag90A[] Price_C1a_90A
          {
            get
            {
              int index = -1;
              List<Tag90A> list = new List<Tag90A>();
              int count;
              do
              {
                ++index;
                Tag90A tag90A = new Tag90A((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0080U0007);
                count = this.ListTags((SwiftElement) tag90A).Count;
                if (count > 0)
                  list.Add(tag90A);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Price")]
          public Tag90A[] Tag90A_Price_C1a
          {
            get
            {
              return this.Price_C1a_90A;
            }
          }

          [Description("Price")]
          public Tag90B[] Price_C1a_90B
          {
            get
            {
              int index = -1;
              List<Tag90B> list = new List<Tag90B>();
              int count;
              do
              {
                ++index;
                Tag90B tag90B = new Tag90B((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0086U0007);
                count = this.ListTags((SwiftElement) tag90B).Count;
                if (count > 0)
                  list.Add(tag90B);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Price")]
          public Tag90B[] Tag90B_Price_C1a
          {
            get
            {
              return this.Price_C1a_90B;
            }
          }

          [Description("Quantity of Financial Instrument")]
          public Tag36B[] QuantityOfFinancialInstrument_C1a_36B
          {
            get
            {
              int index = -1;
              List<Tag36B> list = new List<Tag36B>();
              int count;
              do
              {
                ++index;
                Tag36B tag36B = new Tag36B((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U008DU0007);
                count = this.ListTags((SwiftElement) tag36B).Count;
                if (count > 0)
                  list.Add(tag36B);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Quantity of Financial Instrument")]
          public Tag36B[] Tag36B_QuantityOfFinancialInstrument_C1a
          {
            get
            {
              return this.QuantityOfFinancialInstrument_C1a_36B;
            }
          }

          [Description("Identification of the Financial Instrument")]
          public Tag35B[] IdentificationOfFinancialInstrument_C1a_35B
          {
            get
            {
              int index = -1;
              List<Tag35B> list = new List<Tag35B>();
              int count;
              do
              {
                ++index;
                Tag35B tag35B = new Tag35B((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0092U0007);
                count = this.ListTags((SwiftElement) tag35B).Count;
                if (count > 0)
                  list.Add(tag35B);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Identification of the Financial Instrument")]
          public Tag35B[] Tag35B_IdentificationOfFinancialInstrument_C1a
          {
            get
            {
              return this.IdentificationOfFinancialInstrument_C1a_35B;
            }
          }

          [Description("Financial Instrument Attribute Narrative")]
          public Tag70E Narrative_C1a_70E
          {
            get
            {
              return new Tag70E((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0096U0007);
            }
          }

          [Description("Financial Instrument Attribute Narrative")]
          public Tag70E Tag70E_Narrative_C1a
          {
            get
            {
              return this.Narrative_C1a_70E;
            }
          }

          [Description("End Of Block")]
          public Tag16S EndOfBlock_C1a_16S
          {
            get
            {
              return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0099U0007);
            }
          }

          [Description("End Of Block")]
          public Tag16S Tag16S_EndOfBlock_C1a
          {
            get
            {
              return this.EndOfBlock_C1a_16S;
            }
          }

          internal SequenceC1aClass(SwiftElement parent, int index, bool createTags)
            : base(parent, index, createTags)
          {
          }

          public Tag22F AddIndicator_C1a_22F()
          {
            return new Tag22F((SwiftElement) this, this.Indicator_C1a_22F.Length, (SwiftDefinitionElement) MT584.U0096U0006)
            {
              Value = string.Empty
            };
          }

          public void RemoveIndicator_C1a_22F(Tag22F tag)
          {
            this.RemoveTag(tag.GetTag());
          }

          public Tag12A AddTypeOfFinancialInstrument_C1a_12A()
          {
            return new Tag12A((SwiftElement) this, this.TypeOfFinancialInstrument_C1a_12A.Length, (SwiftDefinitionElement) MT584.U009BU0006)
            {
              Value = string.Empty
            };
          }

          public void RemoveTypeOfFinancialInstrument_C1a_12A(Tag12A tag)
          {
            this.RemoveTag(tag.GetTag());
          }

          public Tag12B AddTypeOfFinancialInstrument_C1a_12B()
          {
            return new Tag12B((SwiftElement) this, this.TypeOfFinancialInstrument_C1a_12B.Length, (SwiftDefinitionElement) MT584.U009FU0006)
            {
              Value = string.Empty
            };
          }

          public void RemoveTypeOfFinancialInstrument_C1a_12B(Tag12B tag)
          {
            this.RemoveTag(tag.GetTag());
          }

          public Tag12C AddTypeOfFinancialInstrument_C1a_12C()
          {
            return new Tag12C((SwiftElement) this, this.TypeOfFinancialInstrument_C1a_12C.Length, (SwiftDefinitionElement) MT584.U0004U0007)
            {
              Value = string.Empty
            };
          }

          public void RemoveTypeOfFinancialInstrument_C1a_12C(Tag12C tag)
          {
            this.RemoveTag(tag.GetTag());
          }

          public Tag98A AddDate_C1a_98A()
          {
            return new Tag98A((SwiftElement) this, this.Date_C1a_98A.Length, (SwiftDefinitionElement) MT584.U000FU0007)
            {
              Value = string.Empty
            };
          }

          public void RemoveDate_C1a_98A(Tag98A tag)
          {
            this.RemoveTag(tag.GetTag());
          }

          public Tag92A AddRate_C1a_92A()
          {
            return new Tag92A((SwiftElement) this, this.Rate_C1a_92A.Length, (SwiftDefinitionElement) MT584.U0012U0007)
            {
              Value = string.Empty
            };
          }

          public void RemoveRate_C1a_92A(Tag92A tag)
          {
            this.RemoveTag(tag.GetTag());
          }

          public Tag13A AddNumberIdentification_C1a_13A()
          {
            return new Tag13A((SwiftElement) this, this.NumberIdentification_C1a_13A.Length, (SwiftDefinitionElement) MT584.U0016U0007)
            {
              Value = string.Empty
            };
          }

          public void RemoveNumberIdentification_C1a_13A(Tag13A tag)
          {
            this.RemoveTag(tag.GetTag());
          }

          public Tag13B AddNumberIdentification_C1a_13B()
          {
            return new Tag13B((SwiftElement) this, this.NumberIdentification_C1a_13B.Length, (SwiftDefinitionElement) MT584.U0019U0007)
            {
              Value = string.Empty
            };
          }

          public void RemoveNumberIdentification_C1a_13B(Tag13B tag)
          {
            this.RemoveTag(tag.GetTag());
          }

          public Tag17B AddFlag_C1a_17B()
          {
            return new Tag17B((SwiftElement) this, this.Flag_C1a_17B.Length, (SwiftDefinitionElement) MT584.U001DU0007)
            {
              Value = string.Empty
            };
          }

          public void RemoveFlag_C1a_17B(Tag17B tag)
          {
            this.RemoveTag(tag.GetTag());
          }

          public Tag90A AddPrice_C1a_90A()
          {
            return new Tag90A((SwiftElement) this, this.Price_C1a_90A.Length, (SwiftDefinitionElement) MT584.U0080U0007)
            {
              Value = string.Empty
            };
          }

          public void RemovePrice_C1a_90A(Tag90A tag)
          {
            this.RemoveTag(tag.GetTag());
          }

          public Tag90B AddPrice_C1a_90B()
          {
            return new Tag90B((SwiftElement) this, this.Price_C1a_90B.Length, (SwiftDefinitionElement) MT584.U0086U0007)
            {
              Value = string.Empty
            };
          }

          public void RemovePrice_C1a_90B(Tag90B tag)
          {
            this.RemoveTag(tag.GetTag());
          }

          public Tag36B AddQuantityOfFinancialInstrument_C1a_36B()
          {
            return new Tag36B((SwiftElement) this, this.QuantityOfFinancialInstrument_C1a_36B.Length, (SwiftDefinitionElement) MT584.U008DU0007)
            {
              Value = string.Empty
            };
          }

          public void RemoveQuantityOfFinancialInstrument_C1a_36B(Tag36B tag)
          {
            this.RemoveTag(tag.GetTag());
          }

          public Tag35B AddIdentificationOfFinancialInstrument_C1a_35B()
          {
            return new Tag35B((SwiftElement) this, this.IdentificationOfFinancialInstrument_C1a_35B.Length, (SwiftDefinitionElement) MT584.U0092U0007)
            {
              Value = string.Empty
            };
          }

          public void RemoveIdentificationOfFinancialInstrument_C1a_35B(Tag35B tag)
          {
            this.RemoveTag(tag.GetTag());
          }
        }

        public class SequenceC1bClass : SwiftTagSequence
        {
          internal override SwiftDefinitionElement Definition
          {
            get
            {
              return (SwiftDefinitionElement) MT584.U009BU0007;
            }
          }

          [Description("Start Of Block")]
          public Tag16R StartOfBlock_C1b_16R
          {
            get
            {
              return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U009CU0007);
            }
          }

          [Description("Start Of Block")]
          public Tag16R Tag16R_StartOfBlock_C1b
          {
            get
            {
              return this.StartOfBlock_C1b_16R;
            }
          }

          [Description("Linked Message")]
          public Tag13A NumberIdentification_C1b_13A
          {
            get
            {
              return new Tag13A((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U009FU0007);
            }
          }

          [Description("Linked Message")]
          public Tag13A Tag13A_NumberIdentification_C1b
          {
            get
            {
              return this.NumberIdentification_C1b_13A;
            }
          }

          [Description("Linked Message")]
          public Tag13B NumberIdentification_C1b_13B
          {
            get
            {
              return new Tag13B((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0003U0008);
            }
          }

          [Description("Linked Message")]
          public Tag13B Tag13B_NumberIdentification_C1b
          {
            get
            {
              return this.NumberIdentification_C1b_13B;
            }
          }

          [Description("Reference")]
          public Tag20C Reference_C1b_20C
          {
            get
            {
              return new Tag20C((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0007U0008);
            }
          }

          [Description("Reference")]
          public Tag20C Tag20C_Reference_C1b
          {
            get
            {
              return this.Reference_C1b_20C;
            }
          }

          [Description("End Of Block")]
          public Tag16S EndOfBlock_C1b_16S
          {
            get
            {
              return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U000FU0008);
            }
          }

          [Description("End Of Block")]
          public Tag16S Tag16S_EndOfBlock_C1b
          {
            get
            {
              return this.EndOfBlock_C1b_16S;
            }
          }

          internal SequenceC1bClass(SwiftElement parent, int index, bool createTags)
            : base(parent, index, createTags)
          {
          }
        }

        public class SequenceC1cClass : SwiftTagSequence
        {
          internal override SwiftDefinitionElement Definition
          {
            get
            {
              return (SwiftDefinitionElement) MT584.U0011U0008;
            }
          }

          [Description("Start Of Block")]
          public Tag16R StartOfBlock_C1c_16R
          {
            get
            {
              return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0012U0008);
            }
          }

          [Description("Start Of Block")]
          public Tag16R Tag16R_StartOfBlock_C1c
          {
            get
            {
              return this.StartOfBlock_C1c_16R;
            }
          }

          [Description("Date/Time")]
          public Tag98A[] Date_C1c_98A
          {
            get
            {
              int index = -1;
              List<Tag98A> list = new List<Tag98A>();
              int count;
              do
              {
                ++index;
                Tag98A tag98A = new Tag98A((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0015U0008);
                count = this.ListTags((SwiftElement) tag98A).Count;
                if (count > 0)
                  list.Add(tag98A);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Date/Time")]
          public Tag98A[] Tag98A_Date_C1c
          {
            get
            {
              return this.Date_C1c_98A;
            }
          }

          [Description("Date/Time")]
          public Tag98B[] DateCode_C1c_98B
          {
            get
            {
              int index = -1;
              List<Tag98B> list = new List<Tag98B>();
              int count;
              do
              {
                ++index;
                Tag98B tag98B = new Tag98B((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0018U0008);
                count = this.ListTags((SwiftElement) tag98B).Count;
                if (count > 0)
                  list.Add(tag98B);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Date/Time")]
          public Tag98B[] Tag98B_DateCode_C1c
          {
            get
            {
              return this.DateCode_C1c_98B;
            }
          }

          [Description("Date/Time")]
          public Tag98C[] DateTime_C1c_98C
          {
            get
            {
              int index = -1;
              List<Tag98C> list = new List<Tag98C>();
              int count;
              do
              {
                ++index;
                Tag98C tag98C = new Tag98C((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U001CU0008);
                count = this.ListTags((SwiftElement) tag98C).Count;
                if (count > 0)
                  list.Add(tag98C);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Date/Time")]
          public Tag98C[] Tag98C_DateTime_C1c
          {
            get
            {
              return this.DateTime_C1c_98C;
            }
          }

          [Description("Indicator")]
          public Tag22F[] Indicator_C1c_22F
          {
            get
            {
              int index = -1;
              List<Tag22F> list = new List<Tag22F>();
              int count;
              do
              {
                ++index;
                Tag22F tag22F = new Tag22F((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0081U0008);
                count = this.ListTags((SwiftElement) tag22F).Count;
                if (count > 0)
                  list.Add(tag22F);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Indicator")]
          public Tag22F[] Tag22F_Indicator_C1c
          {
            get
            {
              return this.Indicator_C1c_22F;
            }
          }

          [Description("Indicator")]
          public MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.Tag22H[] Indicator_C1c_22H
          {
            get
            {
              int index = -1;
              List<MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.Tag22H> list = new List<MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.Tag22H>();
              int count;
              do
              {
                ++index;
                MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.Tag22H tag22H = new MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.Tag22H((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0086U0008);
                count = this.ListTags((SwiftElement) tag22H).Count;
                if (count > 0)
                  list.Add(tag22H);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Indicator")]
          public MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.Tag22H[] Tag22H_Indicator_C1c
          {
            get
            {
              return this.Indicator_C1c_22H;
            }
          }

          [Description("Quantity of Financial Instrument Traded")]
          public Tag36B[] QuantityOfFinancialInstrument_C1c_36B
          {
            get
            {
              int index = -1;
              List<Tag36B> list = new List<Tag36B>();
              int count;
              do
              {
                ++index;
                Tag36B tag36B = new Tag36B((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0089U0008);
                count = this.ListTags((SwiftElement) tag36B).Count;
                if (count > 0)
                  list.Add(tag36B);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Quantity of Financial Instrument Traded")]
          public Tag36B[] Tag36B_QuantityOfFinancialInstrument_C1c
          {
            get
            {
              return this.QuantityOfFinancialInstrument_C1c_36B;
            }
          }

          [Description("Settlement Amount")]
          public Tag19A Amount_C1c_19A
          {
            get
            {
              return new Tag19A((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U008EU0008);
            }
          }

          [Description("Settlement Amount")]
          public Tag19A Tag19A_Amount_C1c
          {
            get
            {
              return this.Amount_C1c_19A;
            }
          }

          [Description("Currency")]
          public Tag11A Currency_C1c_11A
          {
            get
            {
              return new Tag11A((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0091U0008);
            }
          }

          [Description("Currency")]
          public Tag11A Tag11A_Currency_C1c
          {
            get
            {
              return this.Currency_C1c_11A;
            }
          }

          [Description("Confirmation Parties")]
          public MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.SequenceC1c1Class[] SequenceC1c1
          {
            get
            {
              int index = -1;
              List<MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.SequenceC1c1Class> list = new List<MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.SequenceC1c1Class>();
              int count;
              do
              {
                ++index;
                MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.SequenceC1c1Class sequenceC1c1Class = new MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.SequenceC1c1Class((SwiftElement) this, index, false);
                count = this.ListTags((SwiftElement) sequenceC1c1Class).Count;
                if (count > 0)
                  list.Add(sequenceC1c1Class);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("Amounts")]
          public MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.SequenceC1c2Class[] SequenceC1c2
          {
            get
            {
              int index = -1;
              List<MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.SequenceC1c2Class> list = new List<MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.SequenceC1c2Class>();
              int count;
              do
              {
                ++index;
                MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.SequenceC1c2Class sequenceC1c2Class = new MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.SequenceC1c2Class((SwiftElement) this, index, false);
                count = this.ListTags((SwiftElement) sequenceC1c2Class).Count;
                if (count > 0)
                  list.Add(sequenceC1c2Class);
              }
              while (count > 0);
              return list.ToArray();
            }
          }

          [Description("End Of Block")]
          public Tag16S EndOfBlock_C1c_16S
          {
            get
            {
              return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0010U000F);
            }
          }

          [Description("End Of Block")]
          public Tag16S Tag16S_EndOfBlock_C1c
          {
            get
            {
              return this.EndOfBlock_C1c_16S;
            }
          }

          internal SequenceC1cClass(SwiftElement parent, int index, bool createTags)
            : base(parent, index, createTags)
          {
          }

          public Tag98A AddDate_C1c_98A()
          {
            return new Tag98A((SwiftElement) this, this.Date_C1c_98A.Length, (SwiftDefinitionElement) MT584.U0015U0008)
            {
              Value = string.Empty
            };
          }

          public void RemoveDate_C1c_98A(Tag98A tag)
          {
            this.RemoveTag(tag.GetTag());
          }

          public Tag98B AddDateCode_C1c_98B()
          {
            return new Tag98B((SwiftElement) this, this.DateCode_C1c_98B.Length, (SwiftDefinitionElement) MT584.U0018U0008)
            {
              Value = string.Empty
            };
          }

          public void RemoveDateCode_C1c_98B(Tag98B tag)
          {
            this.RemoveTag(tag.GetTag());
          }

          public Tag98C AddDateTime_C1c_98C()
          {
            return new Tag98C((SwiftElement) this, this.DateTime_C1c_98C.Length, (SwiftDefinitionElement) MT584.U001CU0008)
            {
              Value = string.Empty
            };
          }

          public void RemoveDateTime_C1c_98C(Tag98C tag)
          {
            this.RemoveTag(tag.GetTag());
          }

          public Tag22F AddIndicator_C1c_22F()
          {
            return new Tag22F((SwiftElement) this, this.Indicator_C1c_22F.Length, (SwiftDefinitionElement) MT584.U0081U0008)
            {
              Value = string.Empty
            };
          }

          public void RemoveIndicator_C1c_22F(Tag22F tag)
          {
            this.RemoveTag(tag.GetTag());
          }

          public MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.Tag22H AddIndicator_C1c_22H()
          {
            return new MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.Tag22H((SwiftElement) this, this.Indicator_C1c_22H.Length, (SwiftDefinitionElement) MT584.U0086U0008)
            {
              Value = string.Empty
            };
          }

          public void RemoveIndicator_C1c_22H(MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.Tag22H tag)
          {
            this.RemoveTag(tag.GetTag());
          }

          public Tag36B AddQuantityOfFinancialInstrument_C1c_36B()
          {
            return new Tag36B((SwiftElement) this, this.QuantityOfFinancialInstrument_C1c_36B.Length, (SwiftDefinitionElement) MT584.U0089U0008)
            {
              Value = string.Empty
            };
          }

          public void RemoveQuantityOfFinancialInstrument_C1c_36B(Tag36B tag)
          {
            this.RemoveTag(tag.GetTag());
          }

          public MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.SequenceC1c1Class AddSequenceC1c1()
          {
            return new MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.SequenceC1c1Class((SwiftElement) this, this.SequenceC1c1.Length, true);
          }

          public void RemoveSequenceC1c1(MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.SequenceC1c1Class sequence)
          {
            foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
              this.RemoveTag(tag);
          }

          public MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.SequenceC1c2Class AddSequenceC1c2()
          {
            return new MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.SequenceC1c2Class((SwiftElement) this, this.SequenceC1c2.Length, true);
          }

          public void RemoveSequenceC1c2(MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.SequenceC1c2Class sequence)
          {
            foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
              this.RemoveTag(tag);
          }

          public class Tag22H : SwiftTagWrapper
          {
            public string Value
            {
              get
              {
                return this.GetValue();
              }
              set
              {
                this.SetValue("22H", value);
              }
            }

            internal Tag22H(SwiftElement parent, int index, SwiftDefinitionElement definition)
              : base(parent, index, definition)
            {
            }
          }

          public class SequenceC1c1Class : SwiftTagSequence
          {
            internal override SwiftDefinitionElement Definition
            {
              get
              {
                return (SwiftDefinitionElement) MT584.U0094U0008;
              }
            }

            [Description("Start Of Block")]
            public Tag16R StartOfBlock_C1c1_16R
            {
              get
              {
                return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0095U0008);
              }
            }

            [Description("Start Of Block")]
            public Tag16R Tag16R_StartOfBlock_C1c1
            {
              get
              {
                return this.StartOfBlock_C1c1_16R;
              }
            }

            [Description("Party")]
            public Tag95C[] Party_C1c1_95C
            {
              get
              {
                int index = -1;
                List<Tag95C> list = new List<Tag95C>();
                int count;
                do
                {
                  ++index;
                  Tag95C tag95C = new Tag95C((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0098U0008);
                  count = this.ListTags((SwiftElement) tag95C).Count;
                  if (count > 0)
                    list.Add(tag95C);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Party")]
            public Tag95C[] Tag95C_Party_C1c1
            {
              get
              {
                return this.Party_C1c1_95C;
              }
            }

            [Description("Party")]
            public Tag95P[] Party_C1c1_95P
            {
              get
              {
                int index = -1;
                List<Tag95P> list = new List<Tag95P>();
                int count;
                do
                {
                  ++index;
                  Tag95P tag95P = new Tag95P((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U009BU0008);
                  count = this.ListTags((SwiftElement) tag95P).Count;
                  if (count > 0)
                    list.Add(tag95P);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Party")]
            public Tag95P[] Tag95P_Party_C1c1
            {
              get
              {
                return this.Party_C1c1_95P;
              }
            }

            [Description("Party")]
            public Tag95R[] Party_C1c1_95R
            {
              get
              {
                int index = -1;
                List<Tag95R> list = new List<Tag95R>();
                int count;
                do
                {
                  ++index;
                  Tag95R tag95R = new Tag95R((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U009EU0008);
                  count = this.ListTags((SwiftElement) tag95R).Count;
                  if (count > 0)
                    list.Add(tag95R);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Party")]
            public Tag95R[] Tag95R_Party_C1c1
            {
              get
              {
                return this.Party_C1c1_95R;
              }
            }

            [Description("Party")]
            public Tag95Q[] Party_C1c1_95Q
            {
              get
              {
                int index = -1;
                List<Tag95Q> list = new List<Tag95Q>();
                int count;
                do
                {
                  ++index;
                  Tag95Q tag95Q = new Tag95Q((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0003U000E);
                  count = this.ListTags((SwiftElement) tag95Q).Count;
                  if (count > 0)
                    list.Add(tag95Q);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Party")]
            public Tag95Q[] Tag95Q_Party_C1c1
            {
              get
              {
                return this.Party_C1c1_95Q;
              }
            }

            [Description("Party")]
            public MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.SequenceC1c1Class.Tag95S[] Party_C1c1_95S
            {
              get
              {
                int index = -1;
                List<MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.SequenceC1c1Class.Tag95S> list = new List<MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.SequenceC1c1Class.Tag95S>();
                int count;
                do
                {
                  ++index;
                  MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.SequenceC1c1Class.Tag95S tag95S = new MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.SequenceC1c1Class.Tag95S((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0006U000E);
                  count = this.ListTags((SwiftElement) tag95S).Count;
                  if (count > 0)
                    list.Add(tag95S);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Party")]
            public MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.SequenceC1c1Class.Tag95S[] Tag95S_Party_C1c1
            {
              get
              {
                return this.Party_C1c1_95S;
              }
            }

            [Description("Account")]
            public Tag97A[] Account_C1c1_97A
            {
              get
              {
                int index = -1;
                List<Tag97A> list = new List<Tag97A>();
                int count;
                do
                {
                  ++index;
                  Tag97A tag97A = new Tag97A((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0012U000E);
                  count = this.ListTags((SwiftElement) tag97A).Count;
                  if (count > 0)
                    list.Add(tag97A);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Account")]
            public Tag97A[] Tag97A_Account_C1c1
            {
              get
              {
                return this.Account_C1c1_97A;
              }
            }

            [Description("Account")]
            public Tag97B[] Account_C1c1_97B
            {
              get
              {
                int index = -1;
                List<Tag97B> list = new List<Tag97B>();
                int count;
                do
                {
                  ++index;
                  Tag97B tag97B = new Tag97B((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0015U000E);
                  count = this.ListTags((SwiftElement) tag97B).Count;
                  if (count > 0)
                    list.Add(tag97B);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Account")]
            public Tag97B[] Tag97B_Account_C1c1
            {
              get
              {
                return this.Account_C1c1_97B;
              }
            }

            [Description("Processing Date/Time")]
            public Tag98A Date_C1c1_98A
            {
              get
              {
                return new Tag98A((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U001BU000E);
              }
            }

            [Description("Processing Date/Time")]
            public Tag98A Tag98A_Date_C1c1
            {
              get
              {
                return this.Date_C1c1_98A;
              }
            }

            [Description("Processing Date/Time")]
            public Tag98C DateTime_C1c1_98C
            {
              get
              {
                return new Tag98C((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U001EU000E);
              }
            }

            [Description("Processing Date/Time")]
            public Tag98C Tag98C_DateTime_C1c1
            {
              get
              {
                return this.DateTime_C1c1_98C;
              }
            }

            [Description("Processing Reference")]
            public Tag20C Reference_C1c1_20C
            {
              get
              {
                return new Tag20C((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0082U000E);
              }
            }

            [Description("Processing Reference")]
            public Tag20C Tag20C_Reference_C1c1
            {
              get
              {
                return this.Reference_C1c1_20C;
              }
            }

            [Description("Narrative")]
            public Tag70C[] Narrative_C1c1_70C
            {
              get
              {
                int index = -1;
                List<Tag70C> list = new List<Tag70C>();
                int count;
                do
                {
                  ++index;
                  Tag70C tag70C = new Tag70C((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0087U000E);
                  count = this.ListTags((SwiftElement) tag70C).Count;
                  if (count > 0)
                    list.Add(tag70C);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Narrative")]
            public Tag70C[] Tag70C_Narrative_C1c1
            {
              get
              {
                return this.Narrative_C1c1_70C;
              }
            }

            [Description("Narrative")]
            public Tag70E[] Narrative_C1c1_70E
            {
              get
              {
                int index = -1;
                List<Tag70E> list = new List<Tag70E>();
                int count;
                do
                {
                  ++index;
                  Tag70E tag70E = new Tag70E((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U008AU000E);
                  count = this.ListTags((SwiftElement) tag70E).Count;
                  if (count > 0)
                    list.Add(tag70E);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Narrative")]
            public Tag70E[] Tag70E_Narrative_C1c1
            {
              get
              {
                return this.Narrative_C1c1_70E;
              }
            }

            [Description("Party Capacity Indicator")]
            public Tag22F Indicator_C1c1_22F
            {
              get
              {
                return new Tag22F((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U008DU000E);
              }
            }

            [Description("Party Capacity Indicator")]
            public Tag22F Tag22F_Indicator_C1c1
            {
              get
              {
                return this.Indicator_C1c1_22F;
              }
            }

            [Description("End Of Block")]
            public Tag16S EndOfBlock_C1c1_16S
            {
              get
              {
                return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0091U000E);
              }
            }

            [Description("End Of Block")]
            public Tag16S Tag16S_EndOfBlock_C1c1
            {
              get
              {
                return this.EndOfBlock_C1c1_16S;
              }
            }

            internal SequenceC1c1Class(SwiftElement parent, int index, bool createTags)
              : base(parent, index, createTags)
            {
            }

            public Tag95C AddParty_C1c1_95C()
            {
              return new Tag95C((SwiftElement) this, this.Party_C1c1_95C.Length, (SwiftDefinitionElement) MT584.U0098U0008)
              {
                Value = string.Empty
              };
            }

            public void RemoveParty_C1c1_95C(Tag95C tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public Tag95P AddParty_C1c1_95P()
            {
              return new Tag95P((SwiftElement) this, this.Party_C1c1_95P.Length, (SwiftDefinitionElement) MT584.U009BU0008)
              {
                Value = string.Empty
              };
            }

            public void RemoveParty_C1c1_95P(Tag95P tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public Tag95R AddParty_C1c1_95R()
            {
              return new Tag95R((SwiftElement) this, this.Party_C1c1_95R.Length, (SwiftDefinitionElement) MT584.U009EU0008)
              {
                Value = string.Empty
              };
            }

            public void RemoveParty_C1c1_95R(Tag95R tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public Tag95Q AddParty_C1c1_95Q()
            {
              return new Tag95Q((SwiftElement) this, this.Party_C1c1_95Q.Length, (SwiftDefinitionElement) MT584.U0003U000E)
              {
                Value = string.Empty
              };
            }

            public void RemoveParty_C1c1_95Q(Tag95Q tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.SequenceC1c1Class.Tag95S AddParty_C1c1_95S()
            {
              return new MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.SequenceC1c1Class.Tag95S((SwiftElement) this, this.Party_C1c1_95S.Length, (SwiftDefinitionElement) MT584.U0006U000E)
              {
                Value = string.Empty
              };
            }

            public void RemoveParty_C1c1_95S(MT584.SequenceCClass.SequenceC1Class.SequenceC1cClass.SequenceC1c1Class.Tag95S tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public Tag97A AddAccount_C1c1_97A()
            {
              return new Tag97A((SwiftElement) this, this.Account_C1c1_97A.Length, (SwiftDefinitionElement) MT584.U0012U000E)
              {
                Value = string.Empty
              };
            }

            public void RemoveAccount_C1c1_97A(Tag97A tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public Tag97B AddAccount_C1c1_97B()
            {
              return new Tag97B((SwiftElement) this, this.Account_C1c1_97B.Length, (SwiftDefinitionElement) MT584.U0015U000E)
              {
                Value = string.Empty
              };
            }

            public void RemoveAccount_C1c1_97B(Tag97B tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public Tag70C AddNarrative_C1c1_70C()
            {
              return new Tag70C((SwiftElement) this, this.Narrative_C1c1_70C.Length, (SwiftDefinitionElement) MT584.U0087U000E)
              {
                Value = string.Empty
              };
            }

            public void RemoveNarrative_C1c1_70C(Tag70C tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public Tag70E AddNarrative_C1c1_70E()
            {
              return new Tag70E((SwiftElement) this, this.Narrative_C1c1_70E.Length, (SwiftDefinitionElement) MT584.U008AU000E)
              {
                Value = string.Empty
              };
            }

            public void RemoveNarrative_C1c1_70E(Tag70E tag)
            {
              this.RemoveTag(tag.GetTag());
            }

            public class Tag95S : SwiftTagWrapper
            {
              public string Value
              {
                get
                {
                  return this.GetValue();
                }
                set
                {
                  this.SetValue("95S", value);
                }
              }

              internal Tag95S(SwiftElement parent, int index, SwiftDefinitionElement definition)
                : base(parent, index, definition)
              {
              }
            }
          }

          public class SequenceC1c2Class : SwiftTagSequence
          {
            internal override SwiftDefinitionElement Definition
            {
              get
              {
                return (SwiftDefinitionElement) MT584.U0093U000E;
              }
            }

            [Description("Start Of Block")]
            public Tag16R StartOfBlock_C1c2_16R
            {
              get
              {
                return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0094U000E);
              }
            }

            [Description("Start Of Block")]
            public Tag16R Tag16R_StartOfBlock_C1c2
            {
              get
              {
                return this.StartOfBlock_C1c2_16R;
              }
            }

            [Description("Amount")]
            public Tag19A[] Amount_C1c2_19A
            {
              get
              {
                int index = -1;
                List<Tag19A> list = new List<Tag19A>();
                int count;
                do
                {
                  ++index;
                  Tag19A tag19A = new Tag19A((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0096U000E);
                  count = this.ListTags((SwiftElement) tag19A).Count;
                  if (count > 0)
                    list.Add(tag19A);
                }
                while (count > 0);
                return list.ToArray();
              }
            }

            [Description("Amount")]
            public Tag19A[] Tag19A_Amount_C1c2
            {
              get
              {
                return this.Amount_C1c2_19A;
              }
            }

            [Description("Value Date")]
            public Tag98A Date_C1c2_98A
            {
              get
              {
                return new Tag98A((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U009AU000E);
              }
            }

            [Description("Value Date")]
            public Tag98A Tag98A_Date_C1c2
            {
              get
              {
                return this.Date_C1c2_98A;
              }
            }

            [Description("Value Date")]
            public Tag98C DateTime_C1c2_98C
            {
              get
              {
                return new Tag98C((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U009DU000E);
              }
            }

            [Description("Value Date")]
            public Tag98C Tag98C_DateTime_C1c2
            {
              get
              {
                return this.DateTime_C1c2_98C;
              }
            }

            [Description("Exchange Rate")]
            public Tag92B Rate_C1c2_92B
            {
              get
              {
                return new Tag92B((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0003U000F);
              }
            }

            [Description("Exchange Rate")]
            public Tag92B Tag92B_Rate_C1c2
            {
              get
              {
                return this.Rate_C1c2_92B;
              }
            }

            [Description("End Of Block")]
            public Tag16S EndOfBlock_C1c2_16S
            {
              get
              {
                return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U000EU000F);
              }
            }

            [Description("End Of Block")]
            public Tag16S Tag16S_EndOfBlock_C1c2
            {
              get
              {
                return this.EndOfBlock_C1c2_16S;
              }
            }

            internal SequenceC1c2Class(SwiftElement parent, int index, bool createTags)
              : base(parent, index, createTags)
            {
            }

            public Tag19A AddAmount_C1c2_19A()
            {
              return new Tag19A((SwiftElement) this, this.Amount_C1c2_19A.Length, (SwiftDefinitionElement) MT584.U0096U000E)
              {
                Value = string.Empty
              };
            }

            public void RemoveAmount_C1c2_19A(Tag19A tag)
            {
              this.RemoveTag(tag.GetTag());
            }
          }
        }
      }
    }

    public class SequenceDClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT584.U0016U000F;
        }
      }

      [Description("Start of Block")]
      public Tag16R StartOfBlock_D_16R
      {
        get
        {
          return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0017U000F);
        }
      }

      [Description("Start of Block")]
      public Tag16R Tag16R_StartOfBlock_D
      {
        get
        {
          return this.StartOfBlock_D_16R;
        }
      }

      [Description("Party")]
      public Tag95P[] Party_D_95P
      {
        get
        {
          int index = -1;
          List<Tag95P> list = new List<Tag95P>();
          int count;
          do
          {
            ++index;
            Tag95P tag95P = new Tag95P((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U001AU000F);
            count = this.ListTags((SwiftElement) tag95P).Count;
            if (count > 0)
              list.Add(tag95P);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Party")]
      public Tag95P[] Tag95P_Party_D
      {
        get
        {
          return this.Party_D_95P;
        }
      }

      [Description("Party")]
      public Tag95R[] Party_D_95R
      {
        get
        {
          int index = -1;
          List<Tag95R> list = new List<Tag95R>();
          int count;
          do
          {
            ++index;
            Tag95R tag95R = new Tag95R((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U001DU000F);
            count = this.ListTags((SwiftElement) tag95R).Count;
            if (count > 0)
              list.Add(tag95R);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Party")]
      public Tag95R[] Tag95R_Party_D
      {
        get
        {
          return this.Party_D_95R;
        }
      }

      [Description("Party")]
      public Tag95Q[] Party_D_95Q
      {
        get
        {
          int index = -1;
          List<Tag95Q> list = new List<Tag95Q>();
          int count;
          do
          {
            ++index;
            Tag95Q tag95Q = new Tag95Q((SwiftElement) this, index, (SwiftDefinitionElement) MT584.U0080U000F);
            count = this.ListTags((SwiftElement) tag95Q).Count;
            if (count > 0)
              list.Add(tag95Q);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Party")]
      public Tag95Q[] Tag95Q_Party_D
      {
        get
        {
          return this.Party_D_95Q;
        }
      }

      [Description("End of Block")]
      public Tag16S EndOfBlock_D_16S
      {
        get
        {
          return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT584.U0083U000F);
        }
      }

      [Description("End of Block")]
      public Tag16S Tag16S_EndOfBlock_D
      {
        get
        {
          return this.EndOfBlock_D_16S;
        }
      }

      internal SequenceDClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }

      public Tag95P AddParty_D_95P()
      {
        return new Tag95P((SwiftElement) this, this.Party_D_95P.Length, (SwiftDefinitionElement) MT584.U001AU000F)
        {
          Value = string.Empty
        };
      }

      public void RemoveParty_D_95P(Tag95P tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public Tag95R AddParty_D_95R()
      {
        return new Tag95R((SwiftElement) this, this.Party_D_95R.Length, (SwiftDefinitionElement) MT584.U001DU000F)
        {
          Value = string.Empty
        };
      }

      public void RemoveParty_D_95R(Tag95R tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public Tag95Q AddParty_D_95Q()
      {
        return new Tag95Q((SwiftElement) this, this.Party_D_95Q.Length, (SwiftDefinitionElement) MT584.U0080U000F)
        {
          Value = string.Empty
        };
      }

      public void RemoveParty_D_95Q(Tag95Q tag)
      {
        this.RemoveTag(tag.GetTag());
      }
    }
  }
}
